Mailversand per Makro mit Simple Mail Message

Hallo *.

für LO gibt es mehrere Möglichkeiten, über Makrocode Mails an das
Mailprogramm weiter zu reichen und von dort zu versenden. Ich versuche
gerade diese:
https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1system_1_1XSimpleMailMessage.html

Da besteht nämlich die Möglichkeit, neben dem Inhalt auch noch Anhänge
mit zu schicken.

Mit den Anhängen klappt es, mit dem Betreff und dem Inhalt hingegen
tauchen Schwierigkeiten auf, sobald ein Komma dabei ist. Da muss es
irgendwie eine Form der Maskierung geben, die diese SimpleMailMessage
nicht automatisch vornimmt. Ich habe die Suchmaschine meines Vertrauens
bereits bemüht, komme aber nicht weiter. Ich kann natürlich alle Kommas
ersetzen, nur sieht das reichlich blöde aus.

Vielleicht hat hier ja irgendwer eine Idee dazu.

Gruß

Robert

... und noch eine Ergänzung: Nicht nur die Kommas bereiten Probleme,
sonder auch die Zeilenumbrüche ...

Gruß

Robert

Hallo Robert,

http://www.starbasicfaq.de/WiekannmaneinMailverschicken.html kennst Du
klarerweise, das Problem liegt also wahrscheinlich beim Mailprogramm,
evtl. hilft ein simples Austauschen. Versuch' mal mutt, wenn der richtig
konfiguriert ist, funktioniert er gut.

Ich versende derzeit immer mit Python (smtplib, sollte auf Deiner Suse
vorinstalliert sein) das verwendte Skript ist hat keine 50 Zeilen, ist
also leicht portierbar, ggf. kann man das aus Basic raus sogar per
shell() machen.

LuFle

Re: [de-users] Mailversand per Makro mit Simple Mail Message

Hallo Robert,
hast Du schon mal probiert, Deine Text-strings in Komata, Hochkoma u.ä. einzuschließen?
MfG, Torsten

Hallo Robert,

folgender MakroCode funktioniert bei mir [ LO 6.4.4.2 (x64) | Windows 10 Home | emClient ( https://de.emclient.com/ ) ] fehlerfrei:

Sub MV

Dim mTo as String
Dim mSubject as String
Dim mCC() as String
Dim mBcc() as String
Dim mAttachement() as String
Dim mBody as String

Dim oMailAgent as Object
Dim oMailClient as Object
Dim oMailMessage as Object

mTo = "HansWernerHerold@t-online.de"
mSubject = " Test, Test, Test ..."
mCC = Array("OoOHWHOoO@t-online.de","HansWernerHerold@t-online.de")
mBcc = Array("OoOHWHOoO@t-online.de","HansWernerHerold@t-online.de")
mAttachement = Array(ConvertToUrl("E:\TMP\WRITER.odt"),ConvertToUrl("E:\TMP\CALC.ods"))
mBody = "hallo, hallo" & Chr(10) & "Und, tschüss" & Chr(10) & "PS:"

' oMailAgent = CreateUnoService("com.sun.star.system.SimpleCommandMail") ' LINUX
oMailAgent = CreateUnoService("com.sun.star.system.SimpleSystemMail") ' WINDOWS
oMailClient = oMailAgent.querySimpleMailClient()
oMailMessage = oMailClient.createSimpleMailMessage()

oMailMessage.setRecipient(mTo)
oMailMessage.setCcRecipient(mCC)
oMailMessage.setBccRecipient(mBcc)
oMailMessage.setSubject(mSubject)
oMailMessage.setAttachement(mAttachement)
oMailmessage.Body = mBody

oMailClient.sendSimpleMailMessage(oMailMessage,0)

End Sub

Ich vermute, dass könnte mit dem von Dir genutzten MailClient zusammenhängen, wenn ich Dich nicht falsch verstanden habe und bei Dir auch der MailClient gestartet, die zu versendende Mail mit den entsprechenden Einträgen versehen angezeigt und man nur noch auf "SEND" klicken muss ...

Vielleicht hilft Dir das weiter,
viele Grüße

Hans-Werner :-))

------ Originalnachricht ------

Hallo Werner, hallo LuFle,

zum einen: Ich mache das ganze für Testdatenbanken - Mail über Datenbanken.

Zum anderen: Bei mir funktioniert genau das nicht, was bei Deinem
Beispiel funktioniert, Werner - Kommas in Mails brechen den Text auf, je
nach Testkonfiguration erscheint der dann auch einmal beim Empfänger ...

Und Umbrüche funktionieren auch nicht.

Da muss ich wohl einmal in der Thunderbird-Doku suchen. Denn was ich da
nachher in der Beschreibung stehen habe sollte ja allgemeingültig sein.

Gruß

Robert

Hallo Torsten,

hast Du schon mal probiert, Deine Text-strings in Komata, Hochkoma u.ä.
einzuschließen?

Habe ich jetzt gerade versucht. Das lässt das Komma in der Betreffzeile
erscheinen, aber macht aus allen Leertastenräumen %20. Außerdem führt
das beim Inhalt wieder dazu, dass der Teil nach dem Komma als Empfänger
erscheint ...

Gruß

Robert

Hallo *,

ich habe einmal meine Datenbankdatei hier hochgeladen:
https://www.familiegrosskopf.de/robert/download/Beispiel_Mailaufruf.odb

Wenn Ihr das Formular "Mail_mit_Anhang" öffnet, dann kann direkt der
Button betätigt werden. Das Mailprogramm müsste mit den Inhalten des
ersten Datensatzes befüllt werden. Bei mir eben dann mit merkwürdige
Ergebnissen in Bezug auf Kommas und Absätze.

Kontrolliere ich den Inhalt mit xray, so ist das Objekt genau so, wie es
sein sollte. Nur kommt das so nicht über ...

Gruß

Robert

Hallo Robert,

Datenbankdatei hier hochgeladen: https://www.familiegrosskopf.de/robert/download/Beispiel_Mailaufruf.odb
Wenn Ihr das Formular "Mail_mit_Anhang" öffnet, dann kann direkt der Button betätigt werden.

bei mir funktioniert Mail_mit_Anhang gar nicht, da stehen die Zeilen
   hier ein kleiner Mailtest. Damit z.B. das Komma nicht den Inhalt abt...
und
   Gruß <>
als weitere Empfänger, der Betreff ist ohne Komma
   Mailtest aus Base heraus
und der Inhalt lautet
   Hallo *

Allerdings mit dem Formular Kontakte_Mail_Web funktioniert es fast richtig, bei CCs werden die Checkboxen nicht berücksichtigt, es geht ein CC an alle. Ich habe Dir diese generierte Mail geschickt, jedoch die CC-Adressen gelöscht.

Gruß
Michael

Hallo Klaus-Michael,

bei mir funktioniert Mail_mit_Anhang gar nicht, da stehen die Zeilen
   hier ein kleiner Mailtest. Damit z.B. das Komma nicht den Inhalt abt...
und
   Gruß <>
als weitere Empfänger, der Betreff ist ohne Komma
   Mailtest aus Base heraus
und der Inhalt lautet
   Hallo *

Das ist genau das Problem. An dem Makro hängt die SimpleMail-Variante.
Mich wundert, dass das bei Dir jetzt auch den Fehler gibt, wo das vorher
mit den Kommas funktioniert hat.

Allerdings mit dem Formular Kontakte_Mail_Web funktioniert es fast
richtig, bei CCs werden die Checkboxen nicht berücksichtigt, es geht ein
CC an alle. Ich habe Dir diese generierte Mail geschickt, jedoch die
CC-Adressen gelöscht.

Das liegt daran, dass hier der Code über oShell.execute weitergegeben
wird. Da wird der gesamte Inhalt in URL-Schreibweise umgewandelt sowie
einige Sonderzeichen separat ersetzt.

Gruß

Robert