摘要
我正在尝试以编程方式添加超链接到从我已移动到另一个文件夹的电子邮件创建的任务 . 目标是让任务包含链接到Outlook项目的超链接,该项目被移动到“已处理的电子邮件”文件夹“但我遇到了一些麻烦 . 在移动后获取对象的EntryID的最佳方法是什么?
问题
但是,我不明白如何移动MailItem,然后在移动后以编程方式获取其新的EntryID . “天真”的方式不起作用 . 使用Move方法移动MailItem对象后,EntryID属性不会反映ID的更改 .
详情
如果outlook项目保留在收件箱中,则使用格式 outlook:<EntryID>
创建指向Outlook项目的超链接很容易,因为我可以获取我链接到的对象的EntryID . 但是,Outlook会在移动对象时更改EntryID . 我想了解如何获取更新的ID,以便我可以构建一个准确的链接 .
示例
请参阅以下示例代码 . 消息框显示objMail的EntryID属性仍然返回相同的值,尽管移动了对象 . 但是,在目标文件夹中的邮件上运行单独的宏可确认EntryID已随移动而更改 .
Sub MoveObject(objItem As Object)
Select Case objItem.Class
Case olMail
Dim objMail As MailItem
Set objMail = objItem
MsgBox (objMail.EntryID)
Dim inBox As Outlook.MAPIFolder
Set inBox = Application.ActiveExplorer().Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
Dim destFolder As Outlook.MAPIFolder
Set destFolder = inBox.Folders("Processed Email")
If (Application.ActiveExplorer().CurrentFolder.Name <> destFolder.Name) Then
objMail.Move destFolder
End If
MsgBox (objMail.EntryID)
End Select
End Sub
在此先感谢您的帮助!
2 回答
MailItem类的Move方法返回一个对象,该对象表示已移动到指定文件夹的项目 . 您需要检查返回对象的EntryID值,而不是源对象的值 .
无论如何,您可以考虑处理目标文件夹的ItemAdd事件,以确保始终使用更新的条目ID值 .
您好,请您详细说明您的答案我无法理解 .
无论如何,您可以考虑处理目标文件夹的
ItemAdd
事件,以确保始终使用更新的条目ID值 .这是我的代码,移动后我需要
EntryID
.