Seite 1 von 3
Mail erstellen per Makro
Verfasst: Mi 22. Jun 2016, 09:01
von Fritz-Ha
Hallo,
zu diesem Thema habe ich einige Einträge hier gefunden, die auch hilfreich waren.
Ich bin bei der Erstellung meines Makros dann aber doch auf ein Problem gestoßen:
Code: Alles auswählen
select case GetGUIType()
case 4
MailAgent = CreateUnoService("com.sun.star.system.SimpleCommandMail")
case 1
MailAgent = CreateUnoService("com.sun.star.system.SimpleSystemMail")
end select
MailClient = MailAgent.querySimpleMailClient()
MailMessage = MailClient.createSimpleMailMessage()
MailMessage.setRecipient("aaa@bbb.de")
MailMessage.setSubject("Der Betreff")
MailMessage.Body = "Hier der Text"
MailClient.sendSimpleMailMessage(MailMessage, 0)
Das funktioniert alles bis auf die Zeile "MailMessage.Body ...."
LO meldet dann eine nicht gefundene Eigenschaft oder Methode: Body
Wo bitte liegt mein Fehler??
Danke
F.H.
Re: Mail erstellen per Makro
Verfasst: Do 23. Jun 2016, 16:33
von mikele
Hallo,
welche LO-Version benutzt du? Unter 4.4.7 und 5.0.3 kann ich das Problem nicht bestätigen.
Re: Mail erstellen per Makro
Verfasst: Fr 24. Jun 2016, 10:52
von Fritz-Ha
Danke schon mal.
Ich habe hier eine recht alte Version 4.1.2.3
Ich werd es zu Hause mal mit einer neuen Version versuchen.
mbG
F.H
Re: Mail erstellen per Makro
Verfasst: Mo 27. Jun 2016, 10:51
von Fritz-Ha
Ich hab es zu Hause unter Version 5 versucht. Keine Fehlermeldung.
Ist das Problem damit gelöst?
Nein, denn ich muss das irgendwie auf der alten Version (4.1) hinkriegen. Und ich gehe davon aus, dass auch damals schon
Mails mit Text erstellt werden konnten.
Kann mir denn jemand sagen, wie das funktionieren könnte?
Danke auf jeden Fall.
F.H.
Re: Mail erstellen per Makro
Verfasst: Mo 27. Jun 2016, 14:49
von craig
Hallo F.H.,
habe folgenden Code erfolgreich unter AOO 4.1.2 gestestet.
Du versuchst folgendes:
Code: Alles auswählen
MailAgent = CreateUnoService("com.sun.star.system.SimpleSystemMail")
Hier liegt das Problem, da der Sevice
"SimpleSystemMail" in AOO und in früheren LO-Versionen nicht existiert.
Deshalb mußt Du wie in meinem Code zusehen ist der Service
"SystemMailProvider" geladen werden.
Woher ich das weiß?
Habe ich in der bei mir installierten SDK nachgesehen, ob unter diesem Pfad "com.sun.star.system." der Service
"SimpleSystemMail" existiert. Dort fand ich unter der SDK für AOO jedoch nur den Service
"SystemMailProvider".
Habe diesen ausprobiert, was dann funktioniert, allerdings mussten jetzt die Eigenschaften und Methoden auf diesen Service angepasst werden.
Dazu benutzte ich die IDE-Extension
"MRI", damit kann mal den Code (Eigenschaften/ Methoden/Services/Interfaces) untersuchen.
Daraus folgt auch die weitere Anpassung des Codes, da ich auch die Eigenschaften und Methoden dem geladenen Service angepasst habe.
Code: Alles auswählen
REM ***** BASIC *****
Sub Main
MailAgent = CreateUnoService("com.sun.star.system.SystemMailProvider")
' mri MailAgent
MailClient = MailAgent.queryMailClient()
MailMessage = MailClient.createMailMessage()
MailMessage.Recipient("aaa@bbb.de")
MailMessage.Subject("Der Betreff")
MailMessage.Body = "Hier der Text"
MailClient.sendMailMessage(MailMessage, 0)
End Sub
Was noch fehlt, ist der Service
"SimpleCommandMail". Hierfür habe ich enstprechend
Deiner Case-Anweisung noch keinen Service gefunden.
Ggf. schaust Du mal in der Doku nach unter dem Pfad:
"com\sun\star\mail"
http://www.openoffice.org/api/docs/comm ... le-ix.html
MRI kannst Du Dir hier herunterladen und installieren. In der Dokumentation steht wie die Extension geladen werden kann.
http://extensions.services.openoffice.o ... ction-tool
Gruß
Craig
Re: Mail erstellen per Makro
Verfasst: Di 28. Jun 2016, 11:06
von Fritz-Ha
Hallo Craig,
danke für die vielen Mühen, die du dir gemacht hast.
Ich habe deinen Code-Vorschlag probiert und bin bis zur Zeile
MailClient = MailAgent.queryMailClient()
gekommen. Da meldet LO mir ein nicht vorhandenes Object.
MRI und auch XRAY finden da auch kein Object für MailAgent
Der Service "com.sun.star.system.SystemMailProvider" ist wohl nicht vorhanden.
Es tut mir leid, aber damit bin ich nicht weiter gekommen.
Gruß,
F.H.
Re: Mail erstellen per Makro
Verfasst: Di 28. Jun 2016, 15:10
von craig
Hallo F.H.,
nachfolgender Link ist zwar für die LO 5.2 API, für Deine Version konnte ich keine alte Doku finden.
Ggf. bringt Dich dies auf die richtige Spur zur Lösung:
http://api.libreoffice.org/docs/idl/ref ... 1mail.html
Gruß
Craig
Nachtrag:
http://www.pitonyak.org/AndrewMacro.odt
Siehe ab Seite 94
Re: Mail erstellen per Makro
Verfasst: Fr 19. Aug 2016, 17:42
von Dami
vielleicht hilft dir folgendes.
Das Makro erzeugt eine Mail mit Anhang des auktuellen (ThisComponent) Dokuments als PDF
und ein "Body"-Text.
Verwendet wird das standart Mailkonto.
Läuft unter 4.4.7
- Mail.zip
- (22 Bytes) 418-mal heruntergeladen
Re: Mail erstellen per Makro
Verfasst: Fr 19. Aug 2016, 19:04
von Freischreiber
Hallo F. H.,
mir hat dieser Thread aus Base geholfen:
http://www.libreoffice-forum.de/viewtop ... =10#p43442
Es benutzt mailto und läuft jedenfalls unter LO 4.2.8.2
Gruß
Freischreiber
Re: Mail erstellen per Makro
Verfasst: Fr 11. Nov 2016, 07:53
von Fritz-Ha
Hallo alle,
die hier beschriebenen Probleme sind alle gelöst. In der Fa. haben wir jetzt auf die 5.1.5.2
aktualisiert. Da lässt sich der Text problemlos einfügen .
Allerdings habe ich ein anderes Problemchen:
Wie kann ich mehrere Mail-Adressen einfügen?
Meine Variante:
sAnschr = "
x@y.de;
a@b.de"
MailMessage.setRecipient(sAnschr)
funktioniert nicht. Es wird alles wie eine einzige Mailadresse behandelt und von Outlook dementsprechend nicht versand.
Danke.
F.H.