E-Mail aus Excel versenden
#1
Hallo, ich habe folgendes Problem,

ich möchte auf eine eingehende E-Mail antworten.

ich habe folgenden Code:

Sub Korrektur_Rechnung_versenden()

Dim Outlook As Object
Dim Mail As Object
Dim Att As Object
Dim strDateiname As String
Dim strPath As String
Dim strPDF As String
Dim strFile As String
Dim Quelle$, Ziel$, FSO As Object
Dim olApp As Object ', AktMail As Object,
Dim myAnswer As Object

Dim Laufwerk As String

Laufwerk = (Tabelle1.Range("A2").Value)

On Error GoTo FehlerVerarbeitung

strPath = (Laufwerk) & "" & "\DE\Bremen\Garden\Front Office\Rechnungen\Anschriften geändert\" & "" & "Korrektur-Rechnung " & (Tabelle1.Range("B5").Value) & " RG Nr " & (Tabelle1.Range("B21").Value) & ".pdf"
Set olApp = CreateObject("Outlook.Application")

If Not olApp.ActiveInspector Is Nothing Then                'Pruefung auf offene Mail
 
With olApp.ActiveInspector.CurrentItem()
  Set myAnswer = .ReplyAll                            'allen Antworten-Verweis
  .Close False                                        'Aktuelle Mail schliessen
End With
     
With myAnswer
  .Body = (" Sehr geehrte Damen und Herren, ") _
& Chr(10) & "" & Chr(10) & ("Die gewünscht senden wir Ihnen im Anhang Ihre korrigierte Rechnung. ") _
& Chr(10) & "" & Chr(10) & ("Für weitere Fragen und Wünsche stehen wir Ihnen gerne zur Verfügung.") _
& Chr(10) & "" & Chr(10) & ("Mit freundlichen Grüßen / Best regards") _
& Chr(10) & "" & Chr(10) & (Tabelle1.Range("L2").Value)
  .Attachments.Add strPath
  .Display
End With

End If

    Set myAnswer = Nothing
    Set olApp = Nothing

Exit Sub

FehlerVerarbeitung:

MsgBox "Outlook ist nicht aktiv !", , "Fehlermeldung"

End Sub


Das klappt auch soweit ganz gut.

Ich möchte allerdings erreichen, das diese Mail als Antwort auf eine erhaltene Mail angefügt wird. Das heisst, der vorherige Text der Mail
soll erhalten bleiben.

Wie kann ich das erreichen ?

Lieben Gruß Frank
Antworten Top
#2
Hallo,

Fragen dienen auch zum Lernen, also ein unfertiger Beitrag:

Code:
Sub ReplyAll()
Dim EML As MailItem, Repl As MailItem
    
Set EML = ActiveExplorer.CurrentFolder.Items(1)
Debug.Print EML.Subject

Set Repl = EML.ReplyAll
'Repl.GetConversation EML

Repl.Body = "Antwort"
Repl.Display
'repl.Send

Set EML = Nothing
Set Repl = Nothing
End Sub

Bei einigen Versuchen konnte ich die Methode ".GetConversation()" nicht fehlerfrei nutzen. Die Suche (DuckDuck) lieferte keine Erklärung.

mfg
Antworten Top
#3
Der Code bringt leider auch nicht das gewünschte Ergebnis.
Antworten Top
#4
Das liegt wahrschienlich daran, dass du den Body mit deiner Antwort überschreibst.

Code:
.Body = (" Sehr geehrte Damen und Herren, ") _
& Chr(10) & "" & Chr(10) & ("Die gewünscht senden wir Ihnen im Anhang Ihre korrigierte Rechnung. ") _
& Chr(10) & "" & Chr(10) & ("Für weitere Fragen und Wünsche stehen wir Ihnen gerne zur Verfügung.") _
& Chr(10) & "" & Chr(10) & ("Mit freundlichen Grüßen / Best regards") _
& Chr(10) & "" & Chr(10) & (Tabelle1.Range("L2").Value)

Du musst also vorher den Inhalt der alten E-Mail extrahieren und zusammen mit dem neuen Bodytext einfügen. Ich hatte früher immer dieses Problem mit der automatischen Signatur, welche erst extrahiert werden musste. Getestet habe ich das Ganze schon lange nicht mehr, aber vielleicht hilft es ja.

Wenn ich Zeit finde schau ich mal nach dem Code.
Antworten Top
#5
Hallo Janush,

hast du einen Code der das macht?
Antworten Top
#6
Ich habe deinen Code gerade mal gestestet und es ist viel einfacher als gedacht Smile

versuche es mal mit diesem Code

Code:
With myAnswer
  .HTMLbody = (" Sehr geehrte Damen und Herren, ") _
& Chr(10) & "" & Chr(10) & ("Die gewünscht senden wir Ihnen im Anhang Ihre korrigierte Rechnung. ") _
& Chr(10) & "" & Chr(10) & ("Für weitere Fragen und Wünsche stehen wir Ihnen gerne zur Verfügung.") _
& Chr(10) & "" & Chr(10) & ("Mit freundlichen Grüßen / Best regards") & Chr(13) & .HTMLbody
  .Display
End With
Wie du siehst wird hier der originale HTMLBody nach einem Zeilenumbruch Chr(13) angefügt. Der HTMLBody ist das selbe wie Body, nur das hier die eventuelle HTML Struktur der originalen EMail erhalten bleibt. Damit könntest du auch deine Antwort formatieren.

Achso, hatte zum testen die letzte Zeile von dir entfernt.

Edit:

Deine HTML Antwort könnte jetzt in etwa so aussehen:

Code:
.htmlBody = "<p>Sehr geehrte Damen und Herren,<br><br>" _
            & "Wie gewünscht senden wir Ihnen im Anhang Ihre korrigierte Rechnung.<br><br>" _
            & "Für weitere Fragen und Wünsche stehen wir Ihnen gerne zur Verfügung.<br><br>" _
            & "Mit freundlichen Grüßen / Best regards</p>" & Chr(13) & .htmlBody
Antworten Top
#7
Hallo Janush,

das klappt super.

vielen Dank

Frank
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste