🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Email Versand Macro

Alles zur Programmierung im LibreOffice.
Antworten
Peter und Anita
Beiträge: 9
Registriert: So 27. Okt 2019, 11:47

Email Versand Macro

Beitrag von Peter und Anita » So 10. Apr 2022, 12:22

Hallo zusammen,
bin ein erfolgloser Anfänger, habt Geduld mit mir :-). Ich möchte ein Tabellenblatt, per Schaltfläche / Macro, als Email versenden.
Habe hierzu ein Macro im Netz gefunden, leider funktioniert es nicht ganz wie gewünscht.
Es funktioniert: Klick auf die Schaltfläche, das PDF Export Fenster öffnet sich. Ich bestätige mit senden. Das Email Programm (Thunderbird) öffnet eine neue Email. Das PDF ist angehängt, mit dem Namen der ODF Datei. Im Betreff steht ebenfalls der Name der ODF Datei. So weit so gut.

Was nicht funktioniert: Ich habe zwei Emailadressen in Thunderbird hinterlegt. Es wird die Falsche Sende Mailadresse verwendet. Ich würde gerne die korrekte Adresse in einer Zelle hinterlegen, steht in F53.
Es wird keine Empfänger Adresse eingetragen. Diese Adresse steht in I19
Zudem möchte ich einen Mailtext einer Zelle hinterlegen und diesen Text automatisch in die Mail übernehmen, wenn sowas überhaupt möglich ist.

Leider bricht das Macro mit einer Fehlermeldung ab:
BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.container.NoSuchElementException
Message: .

Freue mich über jede Hilfe, vielen lieben Dank.
Gruß
Peter

REM ***** BASIC *****
sub mail
REM Opens the PDF Export Options dialog.
REM Example Call: Send_As_PDF( "myemail@mydomain.com" )
REM Can be called without argument, then the ? Default Recipient ? will be used.
If IsMissing( strRecipient ) Then strRecipient = "I19" REM Default Recipient.
Dim oFrame As Object, oDispatch As Object
Dim aProps(0) As New com.sun.star.beans.PropertyValue
aProps(0).Name = "Recipient"
aProps(0).Value = strRecipient
oFrame = ThisComponent.CurrentController.Frame
oDispatch = createUnoService( "com.sun.star.frame.DispatchHelper" )
oDispatch.executeDispatch( oFrame, ".uno:SendMailDocAsPDF", "", 0, aProps() )
oDoc=Thiscomponent
oTab=oDoc.Sheets.getByName("der Tabellenname")
oZelle=oTab.getCellRangeByName("F53")
empfaenger=oZelle.string
End Sub

Nachtrag:
Es scheint wohl hier ein Problem zu geben.
oTab=oDoc.Sheets.getByName("der Tabellenname")
Den Tabellenname kann ich aber nicht FEST eingeben, da sich der Name der Dokuments ständig ändert.
Bin Planlos... :oops:

Nachtrag 2:
oTab=oDoc.Sheets.getByName("der Tabellenname")
Hier muss der Name vom Tabellen- Blatt eingetragen werden. Habe nun keine Fehlermeldung mehr.
Die Empfänger Email in F53 wird dennoch nicht eingetragen.... :shock:
oZelle=oTab.getCellRangeByName("F53")
empfaenger=oZelle.string

Peter und Anita
Beiträge: 9
Registriert: So 27. Okt 2019, 11:47

Re: Email Versand Macro

Beitrag von Peter und Anita » So 10. Apr 2022, 13:41

1 Problem weniger: Was nicht funktioniert: Ich habe zwei Emailadressen in Thunderbird hinterlegt. Es wird die Falsche Sende Mailadresse verwendet. Man muss eine Adresse in Thunderbird als Standart auswählen. :D

Pit Zyclade
* LO-Experte *
Beiträge: 3041
Registriert: Mo 12. Nov 2012, 16:59

Re: Email Versand Macro

Beitrag von Pit Zyclade » So 10. Apr 2022, 22:16

Peter und Anita hat geschrieben:
So 10. Apr 2022, 13:41
...als Standart ...
Standard Oil Company, Standardisierung. Hat nichts mit "stand art" zu tun. :lol:
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Email Versand Macro

Beitrag von gogo » Mo 11. Apr 2022, 02:55

Code: Alles auswählen

-compose ... from='sende@mail.adresse' ...
tut's auch
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Peter und Anita
Beiträge: 9
Registriert: So 27. Okt 2019, 11:47

Re: Email Versand Macro

Beitrag von Peter und Anita » Mo 11. Apr 2022, 08:17

Danke. Problem gelößt. So Funktioniert es:

Sub SendMail 'this is solution for button
doc = thisComponent
list = doc.getCurrentController.getActiveSheet
mailadress = list.GetCellRangeByName("I19").string
subject = list.GetCellRangeByName("D53").string
bodytext = list.GetCellRangeByName("B53").string
attachmentlink = list.GetCellRangeByName("G53").string

Mailer (mailadress, subject, bodytext, attachmentlink)

end sub

Sub HyperSendMail (sURL$) 'this is solution for function HYPERLINK in the sheet
mailadress = getArgumentFromURL(sURL,"MailAddress")
subject = getArgumentFromURL(sURL, "Subject")
bodytext = getArgumentFromURL(sURL, "Body")
attachmentlink = getArgumentFromURL(sURL, "Attach")

Mailer (mailadress, subject, bodytext, attachmentlink)

End Sub


Sub Mailer (eMailAddress as String, eSubject as String, eBody as String, Attachment as String)

Dim eMailer as Object
Dim eMailClient as Object
Dim eMessage as Object
Dim nFlag as integer


nFlag = 0
eMailer = createUnoService( "com.sun.star.system.SimpleSystemMail" )

eMailClient = eMailer.querySimpleMailClient()
eMessage = eMailClient.createSimpleMailMessage()

eMessage.setRecipient(eMailAddress)
eMessage.setSubject(eSubject)

if Attachment <> "" Then
eAttachmentURL = convertToUrl(Attachment)
eMessage.setAttachement (Array(eAttachmentURL))
end if

eBody = Replace(eBody,"*",chr(10))

eMessage.body = eBody

eMailClient.sendSimpleMailMessage( eMessage, nFlag)

End Sub


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten