mabue88
Goto Top

EMails mit Python an mehrere Empfänger versenden

Hallo,

ich will mit einem Python-Programm eine Mail an mehrere dynamische Mailadressen verschicken. Anhand dem Pyhton Openbook von Galileo Computing bin ich so weit gekommen:
smtpserver.sendmail("sender@abc.de", ["empfaenger1@abc.de", "empfaenger2@abc.de"], "Das ist der Text")  

Hier sind die Empfängeradressen aber statisch.
Wie kann ich das dynamisch machen? Die Anzahl der Empfänger soll variabel sein.

Danke
mabue

Content-Key: 203536

Url: https://administrator.de/contentid/203536

Printed on: April 19, 2024 at 01:04 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer Mar 19, 2013 updated at 07:09:35 (UTC)
Goto Top
moin,

Du kennst das Konzept von Variablen?

lks


Nachtrag:

Schau Dir
 ["empfaenger1@abc.de", "empfaenger2@abc.de"]
genauer an und überlege dir, was das für eine Datenstruktur sein könnte. face-smile
Member: mabue88
mabue88 Mar 19, 2013 updated at 09:45:45 (UTC)
Goto Top
Hallo Lochkartenstanzer,

manchmal sieht man den Baum vor lauter Wäldern nicht face-wink.
Funktioniert jetzt.

Allerdings: Ich will auch CC und BCC Empfänger einfügen. Mit dem Code funktioniert das auch:
	...
	sender = "sender@mail.de"  
	to = [""]  
	cc = [""]  
	bcc = ["empfaenger1@gmail.com", "empfaenger2@web.de"]  
	
	assert type(to) == list
	assert type(cc) == list
	assert type(bcc) == list
	
	mail = MIMEMultipart()
	mail['From'] = sender  
	mail['To'] = COMMASPACE.join(to)  
	mail['Cc'] = COMMASPACE.join(cc)  
	mail['Bcc'] = COMMASPACE.join(bcc)  
	
	addresses = 
	for x in to:
		addresses.append(x)
	
	for x in cc:
		addresses.append(x)
	
	for x in bcc:
		addresses.append(x)

	# Mailinhalt
	mail['Subject'] = "test"  
	body = "Das ist eine Pyhton-Testmail"  
	mail.attach(MIMEText(body, 'plain'))  
	
	# E-Mail versenden
	try:
		smtpserver.sendmail(sender, addresses, mail.as_string())
		print("E-Mail wurde erfolgreich verschickt")  
		smtpserver.close()
	...

Wenn ich mir die Mail von Empfänger 1 in der Gmail-Oberfläche anschaue, dann sehe ich, dass die Mail auch an Empfänger 2 geschickt wurde. Innerhalb der Web-Oberfläche von Empfänger 2 ist das nicht der Fall.
Kleine Info am Rande: ich verwende drei Mailadressen. Eine Gmail-Adresse zum Senden, eine andere Gmail-Adresse zum Empfangen, eine Web.de-Adresse zum Empfangen.

Was muss ich ändern, damit der Gmail-User keine anderern BCC-Empfänger im Mailkopf sieht?

Danke!
Member: Lochkartenstanzer
Lochkartenstanzer Mar 19, 2013 at 09:44:06 (UTC)
Goto Top
Moin,

Ich spreche kein pythonisch, daher kann ich Dir nur einen allgemeine Tipp geben:

Die funktion smptserver.sendmail scheint den zweiten parameter als "to:" zu interpretieren. Da werden allgemein alle Empfänger mit aufgeführt. Ob es da noch eine weitere Funktion gibt, der man TO, CC und BCC getrennt üebrgeben kann, oder ob man das durch die Formatierung der Adresse (z.B. BCC:bcc-empfaenger@donain.tld) hinbekommt, mußt du in Deiner Dokumentation nachschauen.

lks