Ich versuche, ein VBA zu erstellen, das empfangene E-Mails weiterleiten kann. Das einzige Problem ist, dass die E-Mails, die ich weiterleiten möchte, unterschiedliche Betreffzeilen haben. Nur der Anfang ist gleich. So weit bin ich damit gekommen (dies sollte in DieseOutlookSitzung eingefügt werden). Kann mir bitte jemand helfen?
Public WithEvents objInbox As Outlook.Folder
Public WithEvents objInboxItems As Outlook.Items
Private Sub Application_Startup()
Set objInbox = Outlook.Application.Session.GetDefaultFolder(olFolderInbox)
Set objInboxItems = objInbox.Items
End Sub
Private Sub objInboxItems_ItemAdd(ByVal item As Object)
Dim objMail As Outlook.MailItem
Dim objForward As Outlook.MailItem
If TypeOf item Is MailItem Then
Set objMail = item
'If it is a specific new email'
If (objMail.Subject = "Offer Response Received") Then
Set objForward = objMail.Forward
'Customize the forward subject, body and recipients'
With objForward
.Subject = "Offer accepted"
.HTMLBody = "<HTML><BODY>Please proceed. </BODY></HTML>" & objForward.HTMLBody
.Recipients.Add ("")
.Recipients.Add ("")
.Recipients.ResolveAll
.Importance = olImportanceHigh
.Send
End With
End If
End If
End Sub
Antwort1
Den allgemeinen Text können Sie dem Betreff der jeweiligen E-Mail entnehmen.
Private Sub objInboxItems_ItemAdd(ByVal item As Object)
Dim objMail As MailItem
Dim objForward As MailItem
Dim beginStr As String
Dim lenBegin As Long
beginStr = "the common text at beginning of applicable mail"
lenBegin = Len(beginStr)
If TypeOf item Is MailItem Then
Set objMail = item
'New email where the "beginning is the same"
If Left(objMail.Subject, lenBegin) = beginStr Then
Set objForward = objMail.Forward
'Customize the forward subject, body and recipients'
With objForward
.Subject = "Offer accepted"
.HTMLBody = "<HTML><BODY>Please proceed. </BODY></HTML>" & objForward.HTMLBody
'.recipients.Add ("")
'.recipients.Add ("")
.recipients.ResolveAll
.Importance = olImportanceHigh
.Display '.Send
End With
End If
End If
End Sub