Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: herb54 am Dezember 30, 2021, 18:40:32

Titel: Mail senden via Access Textanzeige
Beitrag von: herb54 am Dezember 30, 2021, 18:40:32
Hallo, ich habe ein ungebundenes Formular erstellt zum erstellen von Mails. Hier der Programmcode:
a) Button zum Mailen:
Private Sub Befehl6_Click()
EMail
End Sub
b) Prozedur:
Public Function EMail() 'Long Binding

Dim bodystring As String
Dim strPathName As String
Dim objMailItem As Object
Dim objMailOLApp As Object

Set objMailOLApp = CreateObject("outlook.application")
Set objMailItem = objMailOLApp.CreateItem(olMailItem)
objMailItem.Display

With objMailItem
.To = ctlMailadresse
.Subject = ctlBetreff
bodystring = objMailItem.body
.body = ctlText & vbCrLf & vbCrLf & bodystring

'.Attachments.Add "Anhang"

'.Send
End With
objMailItem.Display
End Function

Das funktioniert auch einwandfrei so.
Leider kommen beim Anzeigen des Mailtextes folgende Zeichen:
<div> dies ist mein Mailtex </div>.

Ich habe es schon mit:
.HTMLBody = ctlText & vbCrLf & vbCrLf & bodystring versucht.
Hier wird der Text richtig angezeigt ohne diese Zeichen.
Aber hier schreibt er mir die komplette Signatur in eine Reihe
Was ist hier falsch?

Noch eine Frage zum Schluss
Müsste ich nicht das noch anfügen am Ende:
Set objMailOLApp = Nothing ???
Set objMailItem  = Nothing ???

Grüße
Herbert
Titel: Re: Mail senden via Access Textanzeige
Beitrag von: DF6GL am Dezember 30, 2021, 20:39:49
Hallo,

wenn HTML-Format (HTMLBody) benutzt wird, sollten auch die Zeilenumbrüche (bzw. der gesamte Text) mit HTML codiert werden:

.HTMLBody = ctlText & "<br>" & "<br>" & bodystring
Titel: Re: Mail senden via Access Textanzeige
Beitrag von: herb54 am Dezember 30, 2021, 22:14:25
Hallo Franz,

leider hat das nicht funktioniert.  Die Signatur wird in einer Zeile geschrieben.
Beispiel:

Mit freundlichen Grüßen
Max Mustermann
66655 Musterstadt

erscheint so:

Mit freundlichen Grüßen Max Mustermann 66655 Musterstadt

Grüße
Herbert
Titel: Re: Mail senden via Access Textanzeige
Beitrag von: herb54 am Dezember 31, 2021, 10:49:01
Hallo,
mir wäre ja schon gedient, wenn ich diese Zeichen weg bekäme:
<div> dies ist mein Mailtex </div>.

Grüße
Herbert
Titel: Re: Mail senden via Access Textanzeige
Beitrag von: DF6GL am Dezember 31, 2021, 11:38:22
Hallo,

1) wenn du .Body verwendest:

.body = Replace (Replace (ctlText & vbCrLf & vbCrLf & bodystring, "</div>",""),"<div>","")


2) bei .HTMLBody:

den Text in "ctlText" so anpassen, dass "<br>" an die Stellen platziert wird, an denen ein Zeilenumbruch stattfinden soll.


Grundsätzlich solltest Du Dich entscheiden, ob Du HTML-Format oder Plaintext-Format  bei den Mails verwenden willst/sollst und danach bei Plaintext  vbCrLF und ohne HTML-Tags oder bei HTML die entsprechenden Tags einsetzt.
Titel: Re: Mail senden via Access Textanzeige
Beitrag von: PhilS am Dezember 31, 2021, 11:51:59
Zitat von: DF6GL am Dezember 31, 2021, 11:38:22Grundsätzlich solltest Du Dich entscheiden, ob Du HTML-Format oder Plaintext-Format  bei den Mails verwenden willst/sollst [...]
Diese Entscheidung sollte dann mit einer entsprechenden Zuweisung an die BodyFormat-Eigenschaft des MailItems abgeschlossen werden.
Titel: Re: Mail senden via Access Textanzeige
Beitrag von: herb54 am Januar 03, 2022, 18:58:54
Hallo Franz,

das war es:

Zitat von: DF6GL am Dezember 31, 2021, 11:38:22.body = Replace (Replace (ctlText & vbCrLf & vbCrLf & bodystring, "</div>",""),"<div>","")

damit sind die Zeichen weg. Vielen Dank!

Grüße
Herbert