【发布时间】:2023-01-08 05:58:01
【问题描述】:
我有一个 Exchange 邮箱,里面有一堆 Outlook ReportItem 未送达的邮件。我试图通过对 ReportItem 消息调用“SendAgain”操作,通过 Outlook VBA 脚本重新处理未送达的消息。我的问题是 ReportItem 没有发送方法,所以我无法实际发送重新处理的消息。我正在使用以下代码来浏览消息:
Dim objApp As Outlook.Application
Dim objNameSpace As NameSpace
Dim journalAlertInbox As Folder
Dim objInspector As Inspector
Dim resendItem As ReportItem
Set objApp = CreateObject("Outlook.Application")
Set objNameSpace = objApp.GetNamespace("MAPI")
Set journalAlertInbox = objNameSpace.Stores.Item("thestore").GetDefaultFolder(olFolderInbox)
For Each folderItem In journalAlertInbox.Items
If TypeOf folderItem Is ReportItem Then
folderItem.Display
Set objInspector = folderItem.GetInspector
objInspector.CommandBars.ExecuteMso "SendAgain"
Set resendItem = Application.ActiveInspector.CurrentItem
Set objInspector = resendItem.GetInspector
''how do I send the item that is now displayed?
''resendItem.Close olSave
folderItem.Close olDiscard
End If
Next folderItem
我想我可以将显示的消息保存为草稿,但是如果我取消注释 resendItem.close olSave 行,这会导致在我的 Outlook 草稿文件夹中出现ReportItem 类型的消息。我可以在 Outlook GUI 中打开保存的草稿消息并单击发送按钮,但我看不到以编程方式实际调用发送操作的方法。检查草稿中的消息表明它是 ReportItem 类型,它没有 .Send 方法。
如何调用报告项上的“发送”操作?我可以清楚地看到“发送”按钮,但似乎没有实际点击它的编程方式。
【问题讨论】: