BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 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
Beiträge: 2674
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 7.5.8.2 (X86_64) / AOO 4.1.14 / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

gogo
Beiträge: 1072
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 nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten