【发布时间】:2021-10-08 23:27:12
【问题描述】:
我正在尝试复制带有附件的邮件并将其转发到指定地址。
Option Explicit
Private WithEvents inboxItems As Outlook.Items
Private Sub Application_Startup()
Dim outlookApp As Outlook.Application
Dim objectNS As Outlook.Account
Set outlookApp = Outlook.Application
'Set objectNS = outlookApp.GetNamespace("MAPI")
'Set inboxItems = objectNS.GetDefaultFolder(olFolderInbox).Items
Set objectNS = outlookApp.Session.Accounts.Item(2)
Set inboxItems = objectNS.DeliveryStore.GetDefaultFolder(olFolderInbox).Items
End Sub
Private Sub inboxItems_ItemAdd(ByVal Item As Object)
On Error GoTo ErrorHandler
Dim Msg As Outlook.MailItem
Dim MessageInfo
Dim Result
If TypeName(Item) = "MailItem" Then
MsgBox ("debug msg")
Dim oNS As Outlook.NameSpace
Set oNS = Application.GetNamespace("MAPI")
Dim myItem As Outlook.MailItem
Dim myRecipient As Outlook.Recipient
Set myItem = Application.CreateItem(olMailItem)
Set myRecipient = myItem.Recipients.Add("mail@mail.com")
myItem.Subject = Item.Subject
myItem.SendUsingAccount = oNS.Accounts.Item(2)
myItem.HTMLBody = Item.Body
myItem.Display
'myItem.Send
End If
ExitNewItem:
Exit Sub
ErrorHandler:
MsgBox Err.Number & " - " & Err.Description
Resume ExitNewItem
End Sub
脚本在启动时启动。
当收件箱中出现项目时触发该事件。
由于我有多个与 Outlook 相关联的帐户,因此我使用:
Set objectNS = outlookApp.Session.Accounts.Item(2)
邮件正文未复制(例如,文字+图片)。
我试过了:
myItem.HTMLBody = Item.RTFbody
或
myItem.HTMLBody = Item.HTMLbody
但是消息仍然是空白的。
【问题讨论】:
-
您能检查一下
Item.HTMLbody返回的内容吗?是空字符串吗? -
我不是程序员,碰巧我不得不处理这个任务。如果我这样做
myItem.HTMLBody = Item.HTMLbody消息字段仍然是空的。我会尝试做MsgBox (Item.HTMLbody)看看会发生什么。我可以稍后再做。