我试过这个:
Sub SendAwaitingResponse()
Dim mail As MailItem
Set mail = Outlook.Application.ActiveInspector.CurrentItem
mail.MarkAsTask (olMarkToday)
mail.Categories = "Awaiting Response"
mail.Send
End Sub
出现以下错误:
无法标记草稿项目。 MarkAsTask仅对已发送或接收的项目有效。
可以在用户界面中单击“跟进”,然后邮件将在发送后标记为任务。我认为没有办法以编程方式进行。
答案 0 :(得分:1)
您甚至需要在已发送邮件文件夹中列出Items.ItemAdd,并在传递给事件处理程序的邮件上调用MarkAsTask。
答案 1 :(得分:1)
创建与“发送等待响应”按钮关联的宏,以便使用自定义属性标记已发送的电子邮件:
Sub SendAwaitingResponse()
Dim Mail As MailItem
Set Mail = Outlook.Application.ActiveInspector.CurrentItem
Dim Property As UserProperty
Set Property = Mail.UserProperties.Add("FlagAwaitingResponse", olYesNo)
Property.Value = True
Mail.Send
End Sub
在ThisOutlookSession对象中,订阅添加到“已发送邮件”文件夹的项目。标有自定义属性的项目将标记为Outlook任务。
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim SentItems As Folder
Set SentItems = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail)
Set Items = SentItems.Items
End Sub
Private Sub Items_ItemAdd(ByVal Item As Object)
Dim Mail As MailItem
Set Mail = Item
Set Property = Mail.UserProperties("FlagAwaitingResponse")
If Property Is Nothing Then Exit Sub
Mail.Categories = "Awaiting Response"
Mail.MarkAsTask (olMarkToday)
Mail.Save
End Sub
不要忘记启用Outlook宏来实现此目的。