Seite 1 von 1

smtp.sendmail - mehrere empfänger

Verfasst: Mittwoch 8. September 2010, 13:58
von terra
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

Re: smtp.sendmail - mehrere empfänger

Verfasst: Mittwoch 8. September 2010, 21:03
von /me
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'].

Re: smtp.sendmail - mehrere empfänger

Verfasst: Donnerstag 9. September 2010, 06:54
von terra
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

Re: smtp.sendmail - mehrere empfänger

Verfasst: Donnerstag 9. September 2010, 07:43
von /me
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.

Re: smtp.sendmail - mehrere empfänger

Verfasst: Donnerstag 9. September 2010, 09:15
von terra
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. :(

Re: smtp.sendmail - mehrere empfänger

Verfasst: Donnerstag 9. September 2010, 09:41
von jbs
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.

Re: smtp.sendmail - mehrere empfänger

Verfasst: Donnerstag 9. September 2010, 09:59
von terra
thx, das wars :D