Seite 1 von 1

Mit subprocess und mailto Email erzeugen

Verfasst: Montag 16. Dezember 2013, 17:18
von PySen
Hallo Gemeinde :-),

es wäre prima, wenn ihr mir bei folgendem Problem helfen könntet, da mir die Ideen ausgegangen sind :
Ich möchte mit Python (2.6) Outlook öffnen (ist installiert, Win7) und dann die Empfänger, das Subject sowie den Body automatisch eintragen.
Die Email muss nicht gesendet werden, sondern soll noch weiterbearbeitet werden können.

Grundsätzlich funktioniert das schon via subprocess und mailto.
Im Beispiel unten werden korrekt der Empfänger "XYZ" und der Body "bla" eingetragen.
Allerdings erscheint der Text "bla2" nicht im Subjekt-Textfeld.
vertausche ich body und subject, dann tritt der gleiche Effekt ein : Der Parameter nach dem "&" scheint nicht verarbeitet zu werden.

Code: Alles auswählen

sendstring="start mailto:XYZ?body=bla&subject=bla2"
subprocess.Popen(sendstring, shell=True)
Offensichtlich mache ich ja irgendwas falsch aber ich kann weder im Forum noch im Netz finden, was ich korrigieren muss.
Für eure Hilfe wäre ich ziemlich dankbar.

Re: Mit subprocess und mailto Email erzeugen

Verfasst: Montag 16. Dezember 2013, 22:31
von Sirius3
Keine Ahnung ob start ein wirkliches Programm ist, dann müßte

Code: Alles auswählen

subprocess.Popen(['start', 'mailto:XYZ?body=bla&subject=bla2'])
tun, ansonsten

Code: Alles auswählen

subprocess.Popen(['cmd.exe', '/c', 'start', 'mailto:XYZ?body=bla&subject=bla2'])

Re: Mit subprocess und mailto Email erzeugen

Verfasst: Dienstag 17. Dezember 2013, 07:25
von PySen
Hallo Sirius,

danke für die schnelle Antwort.
Leider ist das Ergebnis das gleiche wie vorher : Outlook-Emailfenster öffnet sich, Empfänger wird eingetragen, Body wird eingetragen und Cursor befindet sich in der Betreff-Zeile ohne aber "bla2" reinzuschreiben.

Gefühlt unschöner aber dafür funktioniert diese Variante:

Code: Alles auswählen

import webbrowser

def main():
  webbrowser.open("mailto:XYZ?body=bla&subject=bla2")

if __name__ == '__main__':
    main()
Falls noch jemand eine Idee zur ersten Version hat, wäre das prima.

Re: Mit subprocess und mailto Email erzeugen

Verfasst: Dienstag 17. Dezember 2013, 08:08
von Whitie
Hallo PySen,
also mit Outlook 2010 funktioniert dieses hier:

Code: Alles auswählen

>>> import subprocess
>>> cmd = [
	r'C:\Program Files\Microsoft Office\Office14\outlook.exe',
	'/c', 'ipm.note',
	'/m', 'abc@xyz.com&subject=Hello World&body=Test Test'
	]
>>> subprocess.Popen(cmd)
Den Pfad zu outlook.exe musst du entsprechend anpassen.

Gruß
Whitie