[gelöst] oMailClient.createSimpleMailMessage()

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Marko888
Beiträge: 7
Registriert: Sa, 02.12.2023 08:02

[gelöst] oMailClient.createSimpleMailMessage()

Beitrag von Marko888 »

Hallo an alle,

das Erstellen von Emails per Makro funktioniert super.

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

oMailMessage.setRecipient(sEmail) 'Empfänger
oMailMessage.setSubject(sBetreff) 'Betreff
oMailMessage.setAttachement(array(converttourl(sSpeicherort & sDateiname))) 'Anhang / Speicherort
oMailMessage.Body = sMessage 'Text
oMailClient.sendSimpleMailMessage(oMailMessage, 0)

Meine Frage:

kann man die Versenderadresse bearbeiten?
Ich möchte verschiedene Emails an verschieden Abteilungen schicken von jeweils anderen Accounts. Momentan mache ich das so, das ich bei den erstellten Emails die Versenderadresse von Hand anpasse.
Zuletzt geändert von Marko888 am Sa, 09.12.2023 08:40, insgesamt 1-mal geändert.
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: oMailClient.createSimpleMailMessage()

Beitrag von F3K Total »

Moin,
ich habe es nicht ausprobiert, aber mit folgendem Code kann man die Einstellungen des Mailmergewizzards verändern.
Sprich das, was unter
Menü Extras/Einstellungen/OpenOffice Writer/Serienbrief-E-Mail eingetragen ist.
Wenn du also den Mailserver vor dem Senden per Code änderst, müsste dein Anliegen umsetzbar sein.

Code: Alles auswählen

sub Update_MailServer
Dim aConfigProvider, oNode, args(0) As new com.sun.star.beans.PropertyValue
   aConfigProvider = createUnoService("com.sun.star.configuration.ConfigurationProvider")
   args(0).Name = "nodepath"
   args(0).Value =  "org.openoffice.Office.Writer/MailMergeWizard"
   getMailServer = aConfigProvider.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess", args())
   xray getMailServer
   getMailServer.setPropertyValue("MailAddress","Hugo@WilliMist.de")
   getMailServer.setPropertyValue("MailDisplayName","Hugo")
   getMailServer.setPropertyValue("MailPassword","999999")
   getMailServer.setPropertyValue("MailPort",777)
   getMailServer.setPropertyValue("MailServer","smtp.YYYY.de")
   getMailServer.setPropertyValue("MailUserName","Hugo@HugoSchrott.de")
   getMailServer.commitChanges()
   xray getMailServer
End sub
Mit der X-Ray Zeile kannst du alle Eigeschaften auslesen und ggf. noch verändern.
MMS.png
MMS.png (92.96 KiB) 1586 mal betrachtet
Viel Erfolg und Bitte um Rückmeldung.

Gruß R
Marko888
Beiträge: 7
Registriert: Sa, 02.12.2023 08:02

Re: oMailClient.createSimpleMailMessage()

Beitrag von Marko888 »

sieht schon mal super aus, Danke schon mal!!!

Anmerkung, weil ich es vergessen habe zu erwähnen: ich brauche das für Libre Office Calc
Betriebssystem Linux MX, Emailprogramm: Mozilla Thunderbird

In Calc ist diese Einstellung nicht zu finden.

Habe das im Writer ausprobiert:

xray getMailServer

in dieser Zeile kommt die Fehlermeldung:
Basic-Laufzeitfehler
Prozedur Sub oder Function nicht definiert.
Hiker
******
Beiträge: 591
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: oMailClient.createSimpleMailMessage()

Beitrag von Hiker »

Marko888 hat geschrieben: Sa, 02.12.2023 17:03 ...

Code: Alles auswählen

xray getMailServer
in dieser Zeile kommt die Fehlermeldung:
Basic-Laufzeitfehler
Prozedur Sub oder Function nicht definiert.
Hast Du xray installiert?

Wenn nicht: Schreib erstmal REM davor oder lösch die Zeile. Xray schickt nicht Deine Mail raus, sondern soll Dir beim analysieren helfen...
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Marko888
Beiträge: 7
Registriert: Sa, 02.12.2023 08:02

Re: oMailClient.createSimpleMailMessage()

Beitrag von Marko888 »

xray ist nicht installiert. Habe die Zeile gelöscht.

in Writer werden die Änderungen in den Einstellungen übernommen (Extras/Einstellungen/OpenOffice Writer/Serienbrief-E-Mail).

Die Email wird aber trotzdem von dem ersten EmailAccount in Thunderbird erstellt.
In Calc kommt die Fehlermeldung bei Zeile:

getMailServer = aConfigProvider.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess", args())

Basic Laufzeitfehler
Variabel nicht definiert

Der Fehler ist weg wenn ich
Dim getMailServer

vorher eingebe

Änderungen bei der Email erstellen sind da aber auch nicht
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: oMailClient.createSimpleMailMessage()

Beitrag von F3K Total »

Moin,
ich habe nochmal geforscht, vielleicht brauchst du nur eine zusätzliche Zeile?

Code: Alles auswählen

oMailMessage.setOriginator("Hugo1@Hugo.de")'Sender?
Probier es mal aus.

Gruß R
Marko888
Beiträge: 7
Registriert: Sa, 02.12.2023 08:02

Re: oMailClient.createSimpleMailMessage()

Beitrag von Marko888 »

Guten Abend,

habs ausprobiert, ohne Erfolg
(origianator = Urheber)

Alle anderen Einträge unter
oMailMessage

geben auch keinen Hinweis auf eine Einstellmöglichkeit
Hiker
******
Beiträge: 591
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: oMailClient.createSimpleMailMessage()

Beitrag von Hiker »

Da ich schon seit langer Zeit ein macro nutze, das via Shell() Thunderbird aufruft, habe ich keine Erfahrung mit dem System innerhalb Open-/LibreOffice.

Via Kommandozeile sollte es via from: möglich sein - muss ich mal ausprobieren. Die frühere Möglichkeit via preselectId wird als obsolet bezeichnet.

https://kb.mozillazine.org/Command_line ... hunderbird
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Marko888
Beiträge: 7
Registriert: Sa, 02.12.2023 08:02

Re: oMailClient.createSimpleMailMessage()

Beitrag von Marko888 »

Danke, das funktioniert

Sub EmailErstellen

'https://kb.mozillazine.org/Command_line ... hunderbird

sAbsender = "Hallo.World@gmail.de"
sEmpfanger = "HierIstDieWelt@gmail.com"

sDateiname = "Datei.pdf"
sSpeicherort = "file:///home/Max/MeineDateien/"
sBetreff = "Rechnung"

sMessage = "from='" & sAbsender & "'"
sMessage = sMessage & ",to='" & sEmpfanger & "'"
'sMessage = sMessage & ",cc='britney@example.com'"
sMessage = sMessage & ",subject='" & sBetreff & "'"
'sMessage = sMessage & ",body='How about dinner tonight?'"
sMessage = sMessage & ",attachment='" & sSpeicherort & sDateiname & "'"

Shell("thunderbird -compose " & sMessage)

End Sub
Marko888
Beiträge: 7
Registriert: Sa, 02.12.2023 08:02

Re: oMailClient.createSimpleMailMessage()

Beitrag von Marko888 »

Zum Schluß nochmal ne Frage:

wie kann ich das hier jetzt als "gelöst" markieren?


Danke an alle für die Mühe und viel Erfolg an den Rest mit der Lösung
Mondblatt24
*******
Beiträge: 1144
Registriert: So, 14.05.2017 16:11

Re: oMailClient.createSimpleMailMessage()

Beitrag von Mondblatt24 »

Marko888 hat geschrieben: Fr, 08.12.2023 07:53 wie kann ich das hier jetzt als "gelöst" markieren?
So gehtʼs
Win 11 (x64) ▪ 24.2.2.2 (x64) ▪ AOO Portable 4.1.15
Wurde die Frage zutreffend beantwortet bitte den Betreff der Eingangsfrage mit [GELÖST] ergänzen. Beschreibung
Marko888
Beiträge: 7
Registriert: Sa, 02.12.2023 08:02

Re: [gelöst] oMailClient.createSimpleMailMessage()

Beitrag von Marko888 »

vielen Dank an ALLE

mein Arbeitsleben ist wieder ein Stück leichter und einfacher geworden :-) :lol:
Antworten