Seite 1 von 1

Mailversand mit zwei Anhängen

Verfasst: So 11. Okt 2020, 14:06
von cynep8
Hallo liebes Forum,
vor ein paar Jahren hatten mir ein paar Forumsmitglieder ein tolles Makros zusammen gebastelt welches mir erlaubte ein PDF aus dem Calc Dokument zu erstellen und dieses dann direkt als Email mit allem drum und dran zu versenden.
Nun möchte ich gerne ein weiteres PDF hinzufügen welches immer mit gesendet werden soll.
Den ersten Pfad Namen mit einen Semikolon oder Komma und dem zweiten Pfad dran zu hängen hat nicht funktioniert (file:///c:/....1.pdf; file:///c:/....2.pdf).

Hoffe mir kann jemand helfen.


Hier der Mailversand Code

Code: Alles auswählen

Sub SendMail 'this is solution for button
doc = thisComponent
list = doc.getCurrentController.getActiveSheet
mailadress = list.GetCellRangeByName("B8").string
subject = list.GetCellRangeByName("A23").string
bodytext = list.GetCellRangeByName("A24").string
attachmentlink = list.GetCellRangeByName("G7").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

Re: Mailversand mit zwei Anhängen

Verfasst: Mi 14. Okt 2020, 20:01
von Wanderer
Hallo

bin gerade im Urlaub, kann das daher nicht ausprobieren. Aber das Problem liegt darin, das der von dir übergebene String für das Attachment in der SUB-Routine Mailer direkt an ConverttoURL übergeben wird und daraus ein Array mit einem String-Element gemacht wird.

Wie man mehrere Attachments übergibt zeigt
https://forum.openoffice.org/en/forum/v ... 20&t=38757

Mailer muss also so erweitert werden, dass der Attachment-String zuerst an einem eventuellen ; aufgeteilt wird (split) und dann für jeden Teilstring ConverttoURL aufgerufen wird und dies an den Array angehängt wird.

Mfg, Jörn

PS: Damit darf das trennende Zeichen ; nicht nmehr in verwendeten Dateinamen vorkommen.

Re: Mailversand mit zwei Anhängen

Verfasst: Fr 16. Okt 2020, 09:47
von cynep8
Vielen Dank,
für deine Antwort. Ich schau mir es am Wochenende gleich mal an.

Re: Mailversand mit zwei Anhängen

Verfasst: So 18. Okt 2020, 12:23
von cynep8
Nach etwas rum probieren hat die Einbindung in meinen Code geklappt. :)

Vielen Dank noch mal für den Hinweis.