Mit Anhang geht das nur sicher über Mailmerge. Der Code, den ich gerade nutze, ist deutlich länger, da ich meine Inhalte auch noch aus einer Datenbank ziehe. Ich versuche das einmal auf das Wesentliche zu kürzen:
SUB Mail_Aufruf(oEvent AS OBJECT)
REM Mailaufruf mit Simpel Mail Message
REM Funktioniert mit Attachments
DIM ar()
DIM attachs()
oForm = oEvent.Source.Model.Parent
oFeld1 = oForm.getByName("E_Mail_Adresse")
oFeld2 = oForm.getByName("E_Mail_Betreff")
oFeld3 = oForm.getByName("E_Mail_Inhalt")
stFeld1 = oFeld1.Text
IF stFeld1 = "" THEN
msgbox "Keine Mailadresse vorhanden." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"
EXIT SUB
END IF
stFeld2 = oFeld2.Text
stFeld3 = oFeld3.Text
REM Variante mit Anhängen. Es muss unter Extras → Optionen → Internet → E-Mail das passende Mailprogramm angegeben werden.
IF GetGuiType() = 1 THEN
oMailer = createUnoService("com.sun.star.system.SimpleSystemMail")
' Sonst Linux/Mac
ELSE
oMailer = createUnoService("com.sun.star.system.SimpleCommandMail")
END IF
oMailProgramm = oMailer.querySimpleMailClient()
oNeueNachricht = oMailProgramm.createSimpleMailMessage()
oNeueNachricht.setRecipient(stFeld1)
oNeueNachricht.setSubject(stFeld2)
oNeueNachricht.Body = Str(stFeld3)
DIM attachs(0)
attachs(0) = "file:///media/Daten/Test/Test-237.pdf"
oNeueNachricht.setAttachement(attachs())
oMailprogramm.sendSimpleMailMessage(oNeueNachricht, 0 )
END SUB
Für das Attachment habe ich jetzt einfach Deinen Pfad eingesetzt. Das lese ich hier über die Datenbank aus und fühe ggf. auch mehrere Attachments über ein Array hinzu. Die Datenbankfelder kannst Du raus nehmen, ebenso die Nachfrage nach dem auslösenden Ereignis. Aus den Feldnamen siehst Du, wozu welcher Inhalt gehört.
Das mit den Zeilenumbrüchen hat eine Person, der ich das Ganze weitergereicht habe, auch gehabt. Da liegt etwas am Mailprogramm, vor allen an den Einstellungen, wie Du Mails verfasst. Bei mir ist das der Thunderbird und reine Textmails. Und wenn Du in die Windowswelt kommst, dann reicht vielleicht CHR(13) nicht aus. Da kann es dann die Kombination mit CHR(13) und CHR(10) sein.
Edit: Code korrigiert, da Attachments in einem Array angegeben werden.