E-Mail mit Thunderbird versenden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
snowflake
User
Beiträge: 93
Registriert: Mittwoch 9. November 2016, 15:46

Hallo zusammen,

ich möchte von Python aus eine E-Mail per Thunderbird versenden. Mit dem unten aufgeführten Skript funktioniert das auch. Allerdings findet kein Zeilenumbruch im "body" der E-Mail statt. Kann mir jemand sagen, was ich falsch gemacht habe?

Code: Alles auswählen

import subprocess

verzeichnis = "C:\\Program Files (x86)\\Mozilla Thunderbird\\thunderbird.exe"
mailadresse = "mailadresse1@gmail.com" + ";" + "mailadresse2@gmail.com"
betreff = "Testmail mit Thunderbird und Python"
inhalt = "Hier steht der Inhalt...\nzweite Zeile\nund noch eine Zeile\n\n"
anhang = "C:\\temp\\Verbesserungen.txt"

parameterliste = verzeichnis + " -compose " + "to='" + mailadresse + "'," + "subject='" + betreff + "'," \
+ "body='" + inhalt +"'," + "attachment='" + anhang + "'"

subprocess.Popen(parameterliste)
Vielen Dank im Voraus und ein schönes WE.

snowflake
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Ein Fehler ist, dass Du den Aufruf als String an Popen übergibst und nicht, wie der Variablenname schon suggereirt, als Liste mit den Argumenten als einzelne Elemente. Ob das in Windows dann aber richtig escaped wird, kann ich nicht sagen.

Code: Alles auswählen

mail = "to='{}',subject='{}',body='{}',attachment='{}'".format(mailadresse, betreff, inhalt, anhang)
subprocess.Popen([verzeichnis, "-compose", mail])
snowflake
User
Beiträge: 93
Registriert: Mittwoch 9. November 2016, 15:46

Vielen Dank Sirius3. So funktioniert es unter Windows.

Viele Grüße

snowflake
Antworten