Ich möchte mit TProcess eine EMail im Thunderbird erstellen. Gemäß der Anleitung:
http://kb.mozillazine.org/Command_line_ ... derbird%29
klappt dies auch - leider nur ansatzweise.
Wenn ich in der Shell z.B. dieses Kommando eingebe, funktioniert alles wunderbar:
thunderbird -compose "to='john@example.com',subject='dinner',body='How about dinner tonight?',attachment='/tmp/speisekarte.pdf'"
Es geht das E-Mail-Verfassen-Fenster vom Thunderbird aus und alle Felder sind ausgefüllt wie gewünscht, auch der Anhang.
Wenn ich allerdings im TProcess folgendes mache, geht nur das Thunderbird-EMail-Verfassen-Fenster auf und NIX ist ausgefüllt.
Code: Alles auswählen
AProcess.Executable := '/usr/bin/thunderbird';
AProcess.Parameters.Add ('-compose');
AProcess.Parameters.Add ('"to='#39'john@example.com'#39',subject='#39'dinner'#39',body='#39'How about dinner tonight?'#39',attachment='#39'/tmp/speisekarte.pdf'#39'"');
Meine Idee war, die einfachen Anführungszeichen durch #39 zu ersetzen, aber das scheint nicht zu funktionieren.
Unter http://www.corlit.com/misc_help_page_co ... _line.html wird eine etwas andere Syntax der Anführungszeichen empfohlen (keine doppelten um den gesamten Parameter, sondern doppelte um die einzelnen Bereiche), also etwa so:
thunderbird -compose to="person@example.com",subject="Your Email Subject"
aber auch das funktioniert nicht mit TProcess, (der Tip dort mit dem HTML-Body und die Kommas durch , zu ersetzen funktioniert übrigens sehr gut)
Im Moment helfe ich mir, in dem das Lazarus Programm ein temporäres Shell-Skript mit dem ganzen thunderbird -compose Kram gemäß obiger Syntax schreibt, das mit fpChmod ausführbar setzt und dieses dann per TProcess ausführt. Aber das ist umständlich und nicht so elegant, eben ein Workaround.
Meine Frage jetzt also endlich: Weiß jemand, wie ich die Parameter von TProcess setzen muss, damit dieser "Verhau" von doppelten und einfachen Anführungszeichen korrekt an das Thunderbird EMail Programm übergeben wird?
Vielen Dank für Eure Hilfe!