Python Mail: gesendete Mails nicht auf dem Server

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
Humbalan
User
Beiträge: 59
Registriert: Mittwoch 2. September 2009, 15:11

Hallo Leute,

mein Python Programm versendet Mails mit Rechnungen. Das funktioniert zwar, was ich aber nicht hinkriege: die versendeten Mails landen nicht im Postausgangs-Ordner auf dem Server. Weiß jemand einen Rat?

Mein Programm:

Code: Alles auswählen

import smtplib
from email.mime.text import MIMEText

textfile = "Mail.txt"
fp = open(textfile, 'rb')
msg = MIMEText(fp.read())
fp.close()

me ="name@webhoster.de"
you ="andere@webhoster.de"

msg['Subject'] = 'The contents of %s' % textfile
msg['From'] = me
msg['To'] = you

srv = smtplib.SMTP ( "smtp.webhoster.de" )

srv.login ( me, password )
srv.sendmail ( me, [you], msg.as_string() )
srv.quit()
Ich arbeite mit Python 2.6.2 unter win7 sp1.

Über einen Tip würde ich mich freuen und wünsche Euch noch ein frohes Osterfest

Grüße
Humbalan
lunar

@Humbalan: Was meinst Du mit „Postaugsangsordner“ auf dem Server? SMTP kennt keine Ordner…
Benutzeravatar
Humbalan
User
Beiträge: 59
Registriert: Mittwoch 2. September 2009, 15:11

Danke für die schnelle Antwort.

Zunächst noch eine Ergänzung: die Angaben des Hosters für die Mailbox lautet
Posteingangsserver:
POP3: pop3.IhreDomain.de
IMAP: imap.IhreDomain.de

Postausgangsserver:
SMTP: smtp.IhreDomain.de

Die Ports lauten wie folgt:
POP3: 110
IMAP: 143
SMTP: 25 (alternativ 587)
Nun zu Deiner Frage:
Ich kann meinen Mailaccount so konfigurierren, dass alle gesendeten Dateien in einem Ornder "Sent" landen, die empfangenen in "Posteingang". Das ist für mich aber nicht so wesentlich, sondern eher, dass die von meinem Programm gesendeten Mails zwar beim Empfänger landen, aber für mich nicht mehr vorhanden sind. Meine Frage lautet also eher: wie schaffe ich es, dass eine Kopie der gesendeten Mails auf dem Server gespeichert werden? Meine privaten Mails schicke ich per Thunderbird, da geht das.
BlackJack

@Humbalan: Du musst halt das selbe machen wie Thunderbird: Die Mail nicht nur verschicken, sondern auch in den entsprechenden Ordner auf dem IMAP-Server kopieren. Die Standardbibliothek hat ein Modul für IMAP. Ich habe mit IMAPClient was darauf aufbaut ganz gute Erfahrungen gemacht.
Benutzeravatar
Humbalan
User
Beiträge: 59
Registriert: Mittwoch 2. September 2009, 15:11

Ich war bisher davon ausgegangen, dass es der Mail irgendwie als Botschaft mitgegeben wird, dass sie auf dem Server bleibt oder nicht. Gut, das war eine Vorstellung ohne einen substanziellen Hintergrund.

Deinen Vorschlag finde ich gut, die Mail auf den entsprechenden Ordner kopieren. Nur wie geht das? Ich kann mir nicht vorstellen, dass es da nicht eine allgemeine Lösung gibt. Ich denke mir, dass auch die Programmierer von Thunderbird nicht wissen, wo auf dem Server mein Hoster meine gesendeten Mails ablegt. Wenn doch: hast Du / habt Ihr eine Ahnung, wie ich an die Info komme? In den Hilfeseiten des Hosters habe ich nichts gefunden.
BlackJack

@Humbalan: Dein Hoster beziehungsweise IMAP hat von sich aus keinen Ordner für gesendete Mails. Weil man per IMAP auch gar keine Mails versenden kann. Das Versenden per SMTP ist davon vollkommen unabhängig und weiss nichts von irgendwelchen Ordnern. Das die gesendeten Mails auch in dem IMAP-Konto in einem entsprechenden Ordner landen, ist Aufgabe Deines Mailprogramms. *Das* legt auch fest wie dieser Ordner heisst. Die Programmierer von Thunderbird wissen also sehr wohl wo sie die Mails speichern, denn die sind dafür zuständig, dass es so etwas wie einen „gesendet”-Ordner überhaupt gibt.
Benutzeravatar
Humbalan
User
Beiträge: 59
Registriert: Mittwoch 2. September 2009, 15:11

Ok, das leuchtet mir ein. Habe bei der Thunderbird-Konfigurierung nachgeschaut und dort auch tatsächlich eine Einstellung für den Name des "Gesendet"-Ordner gefunden. Wie Du gesagt hast: es liegt also an mir, wohin Th. die gesendeten Mails speichert ( :oops: ).

Danke für die Hilfe.
Grüße
Humbalan
Antworten