Mit Makro Thunderbird email versenden - mehrerer Anhänge
Moderator: Moderatoren
Mit Makro Thunderbird email versenden - mehrerer Anhänge
Hallo Ihr wunderbaren Helfer!
Leider finde ich nirgendwo einen Hinweis auf diese Frage:
Ich möchte aus einem Calc-Makro heraus eine Thunderbird email generieren
und mehrere Dateien anhängen.
Wie lautet die richtige Formulierung, um mehrere Dateien anzuhängen?
Irgendwo habe ich das hier gefunden:
thunderbird -compose"to='a@a.com,b@b.com',subject='Test',attachment='/tmp/File1,/tmp/File2'"
Und hatte daraus geschlossen, dass man einfach zwei Pfade mit einem Komma trennt und übergibt.
Auch Semikolon, mit oder ohne Leerzeichen usw. usf., alles habe ich probiert.
Eine einzelne Datei kann ich mit folgnder Sub ohne Probleme senden, beide zusammen leider nicht:
Sub Email_Mit_Mehreren_Anhaengen_Senden
Uebergabe_MailSubject = "Anbei die Anhänge "
Uebergabe_MailMessage = "Hallo," + "<br />" + "<br />" & "anbei die Anhänge wie gewünscht."
Uebergabe_MailAddress = "test@testadresse.de"
Datei_Name1 = "file:///C:/Users/FW/PDFs/" & "INVOICE_1.PDF"
Datei_Name2 = "file:///C:/Users/FW/PDFs/" & "INVOICE_2.PDF"
Anhang = Datei_Name1 & "," & Datei_Name2
MailAgent = CreateUnoService("com.sun.star.system.SimpleSystemMail")
MailClient = MailAgent.querySimpleMailClient()
MailMessage = MailClient.createSimpleMailMessage()
MailMessage.setRecipient(Uebergabe_MailAddress)
MailMessage.setSubject(Uebergabe_MailSubject)
MailMessage.setAttachement(Array(Anhang))
MailMessage.Body = Uebergabe_MailMessage
MailClient.sendSimpleMailMessage(MailMessage, 0)
End Sub
Wo liegt mein (Denk-)Fehler ?
Wald vor lauter Bäumen usw...
Vielen Dank vorab!!!
Leider finde ich nirgendwo einen Hinweis auf diese Frage:
Ich möchte aus einem Calc-Makro heraus eine Thunderbird email generieren
und mehrere Dateien anhängen.
Wie lautet die richtige Formulierung, um mehrere Dateien anzuhängen?
Irgendwo habe ich das hier gefunden:
thunderbird -compose"to='a@a.com,b@b.com',subject='Test',attachment='/tmp/File1,/tmp/File2'"
Und hatte daraus geschlossen, dass man einfach zwei Pfade mit einem Komma trennt und übergibt.
Auch Semikolon, mit oder ohne Leerzeichen usw. usf., alles habe ich probiert.
Eine einzelne Datei kann ich mit folgnder Sub ohne Probleme senden, beide zusammen leider nicht:
Sub Email_Mit_Mehreren_Anhaengen_Senden
Uebergabe_MailSubject = "Anbei die Anhänge "
Uebergabe_MailMessage = "Hallo," + "<br />" + "<br />" & "anbei die Anhänge wie gewünscht."
Uebergabe_MailAddress = "test@testadresse.de"
Datei_Name1 = "file:///C:/Users/FW/PDFs/" & "INVOICE_1.PDF"
Datei_Name2 = "file:///C:/Users/FW/PDFs/" & "INVOICE_2.PDF"
Anhang = Datei_Name1 & "," & Datei_Name2
MailAgent = CreateUnoService("com.sun.star.system.SimpleSystemMail")
MailClient = MailAgent.querySimpleMailClient()
MailMessage = MailClient.createSimpleMailMessage()
MailMessage.setRecipient(Uebergabe_MailAddress)
MailMessage.setSubject(Uebergabe_MailSubject)
MailMessage.setAttachement(Array(Anhang))
MailMessage.Body = Uebergabe_MailMessage
MailClient.sendSimpleMailMessage(MailMessage, 0)
End Sub
Wo liegt mein (Denk-)Fehler ?
Wald vor lauter Bäumen usw...
Vielen Dank vorab!!!
Re: Mit Makro Thunderbird email versenden - mehrerer Anhänge
Bei mir funktioniert:
thunderbird -compose "to='a@a.com,b@b.com',subject='Test',attachment='D:\test1.txt,D:\test2.txt'"
Gruß
Stephan
thunderbird -compose "to='a@a.com,b@b.com',subject='Test',attachment='D:\test1.txt,D:\test2.txt'"
Das Du dem Array einen einzelnen String übergibst, richtig wäre z.B.:Wo liegt mein (Denk-)Fehler ?
Code: Alles auswählen
'...
MailMessage.setAttachement(Array(Datei_Name1, Datei_Name2))
'...
Gruß
Stephan
Re: Mit Makro Thunderbird email versenden - mehrerer Anhänge
Hallo,
im folgenden die am Thread-Anfang viewtopic.php?f=2&t=74682 im Calc-Forum von mir genannte Variante via Shell, die zu Deiner zitierten Syntax gehört.
Du müsstest also in attA dann mehrere durch Komma getrennte Dateien angeben,
wobei ich den Dateinamen durch ConvertToUrl schicke:
vgl: https://www.libreoffice-forum.de/viewtopic.php?t=9857
Die korrekte Schreibweise in Deinem Macro für die Angabe Array() hat Stephan ja schon angegeben.
mfg, Jörn
im folgenden die am Thread-Anfang viewtopic.php?f=2&t=74682 im Calc-Forum von mir genannte Variante via Shell, die zu Deiner zitierten Syntax gehört.
Code: Alles auswählen
shell("C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe",1,"-compose to=" + empf +",attachment=" + attA + ",subject=" + betr + ",body=" + anrT)
wobei ich den Dateinamen durch ConvertToUrl schicke:
Code: Alles auswählen
attA = ConvertToURL (attN)
Die korrekte Schreibweise in Deinem Macro für die Angabe Array() hat Stephan ja schon angegeben.
mfg, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Re: Mit Makro Thunderbird email versenden - mehrerer Anhänge
Stephan hat geschrieben: ↑So, 26.04.2020 19:43 Bei mir funktioniert:
thunderbird -compose "to='a@a.com,b@b.com',subject='Test',attachment='D:\test1.txt,D:\test2.txt'"
Das Du dem Array einen einzelnen String übergibst, richtig wäre z.B.:Wo liegt mein (Denk-)Fehler ?
Code: Alles auswählen
'... MailMessage.setAttachement(Array(Datei_Name1, Datei_Name2)) '...
Gruß
Stephan
Danke für die Antwort!
Ja, so funktioniert es.
Aber nur für konkrete Anhänge, die in der Klammer per Namen einzeln benannt werden.
Vielleicht habe ich mich nicht richtig ausgedrückt:
Kann man auch eine unbekannte Anzahl von Anhängen übergeben?
Also es gäbe z. B. ein bis zu zehn (hundert, tausend, "n") Dateien, die in der Varaiblen
Dateiname(0) - Dateiname(10)...
abgespeichert wären.
Wie könnte ich diese unbekannte Anzahl von Dateien dann übergeben?
Wie würde man dann dieses Array erzeugen?
Zuletzt geändert von FraWie am Mo, 27.04.2020 10:52, insgesamt 1-mal geändert.
Re: Mit Makro Thunderbird email versenden - mehrerer Anhänge
Danke dafür!!!Hiker hat geschrieben: ↑Mo, 27.04.2020 00:18 Hallo,
im folgenden die am Thread-Anfang viewtopic.php?f=2&t=74682 im Calc-Forum von mir genannte Variante via Shell, die zu Deiner zitierten Syntax gehört.Du müsstest also in attA dann mehrere durch Komma getrennte Dateien angeben,Code: Alles auswählen
shell("C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe",1,"-compose to=" + empf +",attachment=" + attA + ",subject=" + betr + ",body=" + anrT)
wobei ich den Dateinamen durch ConvertToUrl schicke:vgl: https://www.libreoffice-forum.de/viewtopic.php?t=9857Code: Alles auswählen
attA = ConvertToURL (attN)
Die korrekte Schreibweise in Deinem Macro für die Angabe Array() hat Stephan ja schon angegeben.
mfg, Jörn
Hatte mich jetzt auch auf die shell-Lösung gestürzt und mein Problem mit mehreren
Dateien-Anhängen lösen können.
Man muss hier noch ein wenig auf die Hochkommas ( " ' " ) achten.
Ich werde die fertige Lösung noch hier reinschreiben, sobald alles fertig ist.
Aber auch gleich hat sich bei der Shell-Lösung ein neues Problem aufgetan:
Ich bekomme im "body-text" Keine Zeilenumbrüche hin.
Während beim Mailclient das recht einfach geht...:
MailMessage.Body = "Hallo zusammen," & "<br />" & "<br />" & "hier kommt die Mail."
...funktioniert es bei der Shell-Version nicht.
Der Text wird bei der html Variante ab dem "<br />" abgeschnitten.
Auch mit chr(13) funktioniert es nicht...
Irgend eine Idee, wie man mehrzeiligen Mail-Text mit übergeben kann?
Re: Mit Makro Thunderbird email versenden - mehrerer Anhänge
So, wieder ein Vormittag rum, aber ich habe die Lösung für das
neue zweite Teil-Problem...
Zeilenumrüche kann man im bodytext wie folgt realisieren.
Uebergabe_MailMessage = "Hallo zusammen" & "%2C%0D%0A" & "hier steht die zweite Zeile"
Wichtig: Auch ein Komma darf nicht mit übergeben werden, dafür steht das "%2C" ...
Ich werde später nochmal die komplette Lösung präsentieren...
neue zweite Teil-Problem...
Zeilenumrüche kann man im bodytext wie folgt realisieren.
Uebergabe_MailMessage = "Hallo zusammen" & "%2C%0D%0A" & "hier steht die zweite Zeile"
Wichtig: Auch ein Komma darf nicht mit übergeben werden, dafür steht das "%2C" ...
Ich werde später nochmal die komplette Lösung präsentieren...
Re: Mit Makro Thunderbird email versenden - mehrerer Anhänge
Das ist jetzt eine Scherzfrage? WEil das Folgende ist ja der absolute Standardfall, dem gegenüber ist Array() schon etwas 'schwieriger'.Aber nur für konkrete Anhänge, die in der Klammer per Namen einzeln benannt werden.
Vielleicht habe ich mich nicht richtig ausgedrückt:
Kann man auch eine unbekannte Anzahl von Anhängen übergeben?
Also es gäbe z. B. ein bis zu zehn (hundert, tausend, "n") Dateien, die in der Varaiblen
Dateiname(0) - Dateiname(10)...
abgespeichert wären.
Wie könnte ich diese unbekannte Anzahl von Dateien dann übergeben?
Wie würde man dann dieses Array erzeugen?
Code: Alles auswählen
Dim Anhang(9) As String
For i = 0 To 9
Anhang(i) = "D:\Datei"& i & ".txt"
Next i
MailMessage.setAttachement(Anhang())
Stephan
Re: Mit Makro Thunderbird email versenden - mehrerer Anhänge
Hey Stephan
So einfach ist das nicht.
Ich hatte das so auch durchaus schon probiert, aber es warf einen Fehler bei mir aus.
Habe es jetzt nochmal durchprobiert und das Problem daran besteht darin,
dass MailMessage.setAttachement(Anhang()) keine leeren Inhalte akzeptiert.
Angenommen man dimensioniert Anhang(10) und hat aber nur drei Werte mit Dateien gefüllt
- somit Anhang(0) bis Anhang(2) gefüllt, der Rest Anhang(3) bis Anhang(10) ist leer -
dann bekommt man einen Fehler:
"Type: com.sun.star.lang.IllegalArgumentException
Message: Invalid attachment file URL."
Lösung DIESES Problems:
Man dimensioniert das Array wirklich nur so groß, wie es auch Dateien anzuhängen gibt...
Okay, wieder ein Problem gelöst.
Ich denke, am Ende werde ich beide Lösungen präsentieren -
für die "Shell-Variante" und den MailClient...
Nein, ich würde es sonst drunter schreiben...Das ist jetzt eine Scherzfrage? WEil das Folgende ist ja der absolute Standardfall, dem gegenüber ist Array() schon etwas 'schwieriger'.
So einfach ist das nicht.
Ich hatte das so auch durchaus schon probiert, aber es warf einen Fehler bei mir aus.
Habe es jetzt nochmal durchprobiert und das Problem daran besteht darin,
dass MailMessage.setAttachement(Anhang()) keine leeren Inhalte akzeptiert.
Angenommen man dimensioniert Anhang(10) und hat aber nur drei Werte mit Dateien gefüllt
- somit Anhang(0) bis Anhang(2) gefüllt, der Rest Anhang(3) bis Anhang(10) ist leer -
dann bekommt man einen Fehler:
"Type: com.sun.star.lang.IllegalArgumentException
Message: Invalid attachment file URL."
Lösung DIESES Problems:
Man dimensioniert das Array wirklich nur so groß, wie es auch Dateien anzuhängen gibt...
Okay, wieder ein Problem gelöst.
Ich denke, am Ende werde ich beide Lösungen präsentieren -
für die "Shell-Variante" und den MailClient...