smtp.sendmail - mehrere empfänger

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
terra
User
Beiträge: 4
Registriert: Mittwoch 8. September 2010, 13:49

Hallo,

ich habe die leidige aufgabe auf arbeit mich in scripte meines vorgängs einzuarbeiten. dieser hat kaum doku hinterlassen und hat einige scripte in python geschrieben, das ist leider noch nicht meine welt.

ich habe nun folgendes problem:

Code: Alles auswählen

def sendmail(anhangpath):
        # Create the container (outer) email message.
        msg = MIMEMultipart()
        msg['Subject'] = 'Datenbank Backup - Emailbericht'
        msg['From'] = 'support@xxx.de'
        msg['To'] = 'kolllege1@xxx.de'
        msg.preamble = 'Logdatei'

        #for file in pngfiles:
    # Open the files in binary mode.  Let the MIMEImage class automatically
    # guess the specific image type.
        fp = open(anhangpath, 'rb')
        text = MIMEText(fp.read())
        fp.close()
        msg.attach(text)


        smtp = smtplib.SMTP("xxx.xxx.intra")
        smtp.login("xxx\xxx", "xxx")
        smtp.sendmail("support@xxx.de", ["kollege1@xxx.de"], msg.as_string())
        smtp.quit()
dieses schnipsel ist wohl dafür zuständig kollege1 eine mail zu schicken. nun würde ich gerne selber auch eine kopie bekommen. also würde ich gerne einen zweiten empfänger dazu tragen. "kollege2@xxx.de"
wie genau baute ich diesen zweiten empfänger hier in den codeblock ein?

gruß terra
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

terra hat geschrieben:

Code: Alles auswählen

def sendmail(anhangpath):
        # Create the container (outer) email message.
        msg = MIMEMultipart()
        msg['Subject'] = 'Datenbank Backup - Emailbericht'
        msg['From'] = 'support@xxx.de'
        msg['To'] = 'kolllege1@xxx.de'
        msg.preamble = 'Logdatei'
        [...]
dieses schnipsel ist wohl dafür zuständig kollege1 eine mail zu schicken. nun würde ich gerne selber auch eine kopie bekommen. also würde ich gerne einen zweiten empfänger dazu tragen. "kollege2@xxx.de"
Ich habe nie damit gearbeitet und ich habe auch keine Lust jetzt in der Dokumentation nachzulesen, aber das schreit doch irgendwie nach einer Zuweisung an msg['CC'].
terra
User
Beiträge: 4
Registriert: Mittwoch 8. September 2010, 13:49

Hallo,

in der Docu ist nur diese Syntax aufgeführt:

SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])

In allen Beispielen die ich finden konnte, ist immer nur EIN Empfänger eingetragen. Nun weiss ich rein zufällig das hier im Haus das Script auch schon mit zwei Empfänger betrieben wurde. Der Autor des Scripts und eben Kollege1. Der Autor ist leider für das Haus nicht mehr tätig.

Ich selber bin leider ein python-newbie

Gruß terra
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

terra hat geschrieben:Ich selber bin leider ein python-newbie
Wenn das in der Dokumentation dort nicht beschrieben ist, dann ziehen wir jetzt halt die technische Spezifikation des Adressfelds in einer Email heran (RFC 5322). Danach werden mehrere Empfänger mit einem Komma getrennt. Teste das mal.
terra
User
Beiträge: 4
Registriert: Mittwoch 8. September 2010, 13:49

Hallo,

also folgendes, ich habe schon etwas vor mich hin getestet.

Code: Alles auswählen

msg['To'] = 'kolllege1@xxx.de,kollege2@xxx.de'
wenn ich das script so ausführe, kommt keine fehlermeldung, aber nur kollege1 bekommt post.

Code: Alles auswählen

smtp.sendmail("support@xxx.de", ["kollege1@xxx.de,kollege2@xxx.de"], msg.as_string())
wenn ich das script so verändert ausführe, kommt auch keine fehlermeldung, aber auch nur kollege1 bekommt post.

Was mich etwas stutzig macht, sind die eckigen klammern. Die sind ja laut Doku nicht vergesehen und ich kann diese auch rausnehmen und es läuft...
Der Kollege1 hat das Script vor meiner Zeit angepasst und kann sich ereinnern das er dort den zweiten Namen rausgelöscht hat. Wie dieser aber getrennt war, das weiss dieser wiederum nicht. :(
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Naja, statt

Code: Alles auswählen

["kollege1@xxx.de,kollege2@xxx.de"]
würde ich mal

Code: Alles auswählen

["kollege1@xxx.de","kollege2@xxx.de"]
versuchen.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
terra
User
Beiträge: 4
Registriert: Mittwoch 8. September 2010, 13:49

thx, das wars :D
Antworten