Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Andreas Irmer am März 10, 2023, 21:20:37

Titel: E-Mail aus Access generieren und Cursor an einer Textstelle stehen lassen
Beitrag von: Andreas Irmer am März 10, 2023, 21:20:37
Guten Abend zusammen,

ich habe in meiner Anwendung in einem Formular eine Möglichkeit geschaffen, eine neue Mail zu generieren und an einen Kunden zu adressieren. Dabei kann ich den Text im Betreff und auch im Body gestalten. Der Cursor steht dann aber immer am Beginn der Nachricht, also vor "Sehr geehrte..." und nicht am Beginn von Zeile xyz, an der ich gerne manuell weiter schreiben möchte. Kann man diese Position programmieren?

Hier der Code, wie ich die Mail generiere:
Private Sub Terminbestaetigung()
    Dim sEmail_Adress As String
    sEmail_Adress = Re_EMail1
    Dim sTitle As String
    sTitle = "Terminbestätigung"
    Dim sText As String
    sText = "Sehr geehrter Herr " & Re_Na2 & ","
    Dim app_Outlook As Outlook.Application
    Set app_Outlook = New Outlook.Application
    Dim objEmail As Outlook.MailItem
    Set objEmail = app_Outlook.CreateItem(olMailItem)
    objEmail.To = sEmail_Adress
    objEmail.Subject = sTitle
    objEmail.HTMLBody = sText & "<br><br>"
    objEmail.Display True
    Set objEmail = Nothing
    Set app_Outlook = Nothing
End Sub

Außerdem würde ich gerne angeben, dass die Mail nicht von meinem Account, sondern von dem Account info@... gesendet wird oder aber zumindest die Antwort des Empfängers an diese Adresse geht.

Hat jemand eine Idee dazu?
Titel: Re: E-Mail aus Access generieren und Cursor an einer Textstelle stehen lassen
Beitrag von: PhilS am März 11, 2023, 10:34:31
Zitat von: Andreas Irmer am März 10, 2023, 21:20:37Der Cursor steht dann aber immer am Beginn der Nachricht, also vor "Sehr geehrte..." und nicht am Beginn von Zeile xyz, an der ich gerne manuell weiter schreiben möchte. Kann man diese Position programmieren?

Wenn du Word als Email-Editor verwendest, kannst du über die Start/End-Eigenschaften der Selection festlegen, wo sich der Cursor befindet.

Z.B. so:
    With objEmail.GetInspector.WordEditor.Application.Selection
        .Start = .Document.Paragraphs.Last.Range.End
        .End = .Document.Paragraphs.Last.Range.End
    End With
Ob das so die sinnvollste Word-Programmierung ist, sei dahingestellt. Dazu frag ggfls. nochmal in einem Word-Forum nach.

Eine Lösung, wenn Word nicht der Email-Editor ist, weiß ich im Moment nicht.

Zitat von: Andreas Irmer am März 10, 2023, 21:20:37Außerdem würde ich gerne angeben, dass die Mail nicht von meinem Account, sondern von dem Account info@... gesendet wird oder aber zumindest die Antwort des Empfängers an diese Adresse geht.

Siehe: Eine Email mit VBA über Outlook mit einen bestimmten Account versenden (https://codekabinett.com/page.php?Theme=11&Lang=1#outlook-vba-absender-email-account-festlegen)

Ansonsten: Die Reply-To-Emailadresse kannst du über die ReplyRecipients (https://learn.microsoft.com/en-us/office/vba/api/outlook.mailitem.replyrecipients?f1url=%3FappId%3DDev11IDEF1%26l%3Den-US%26k%3Dk(vbaol11.chm1355)%3Bk(TargetFrameworkMoniker-Office.Version%3Dv16)%26rd%3Dtrue)-Collection des MailItem setzen.