[英]Forward email based on subject line
我正在嘗試將電子郵件從我公司的 Outlook 轉發到我們公司外部的電子郵件帳戶。 我被允許這樣做。
我想轉發主題行中包含“Excel Friday”的任何電子郵件。
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
' default local Inbox
Set Items = objNS.GetDefaultFolder(olFolderInbox).Items
End Sub
Private Sub Items_ItemAdd(ByVal Item As Object)
On Error GoTo ErrorHandler
Dim Msg As Outlook.MailItem
If TypeName(Item) = "MailItem" Then
Set Msg = Item
If Msg.Subject = "Excel Friday" Then
Dim myMail As Outlook.MailItem
Set myMail = Msg.Reply
myMail.To = "xxxxxx@fakemail.com"
myMail.Display
End If
End If
ProgramExit:
Exit Sub
ErrorHandler:
MsgBox Err.Number & " - " & Err.Description
Resume ProgramExit
End Sub
我想將主題行中包含“Excel Friday”的任何電子郵件轉發到另一個電子郵件地址。
但是在代碼中,您檢查主題行是否完全匹配:
If Msg.Subject = "Excel Friday" Then
相反,您需要查找子字符串。 要查找字符串中子字符串的位置,請使用Instr函數。
If Instr(Msg.Subject, "Excel Friday") Then
我還注意到您使用了 Reply 方法:
Set myMail = Msg.Reply
請改用Forward方法:
Set myMail = Msg.Forward
然后使用發送方法。
myMail.Recipients.Add "Eugene Astafiev"
myMail.Send
請注意,該代碼基於ItemAdd事件處理程序。 一次將大量項目(超過 16 個)添加到文件夾時,不會觸發此事件。
您可以使用運行腳本規則執行此操作
Sub ChangeSubjectForward(Item As Outlook.MailItem)
Item.Subject = "Test"
Item.Save
Set olForward = Item.Forward
olForward.Recipients.Add "Jasonfish11@domain.com"
olForward.Send
End Sub
如果是 vba,您可以隨時對文件夾中的所有郵件運行。
粘貼到 ThisOutlookSession 並運行
Sub ChangeSubjectThenSend()
Dim olApp As Outlook.Application
Dim aItem As Object
Set olApp = CreateObject("Outlook.Application")
Set mail = olApp.ActiveExplorer.CurrentFolder
For Each aItem In mail.Items
aItem.Subject = "New Subject"
aItem.Save
Set olForward = aItem.Forward
olForward.Recipients.Add "Jasonfish11@domain.com"
olForward.Send
Next aItem
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.