1

我试过这个:

Sub SendAwaitingResponse()
  Dim mail As MailItem
  Set mail = Outlook.Application.ActiveInspector.CurrentItem
  mail.MarkAsTask (olMarkToday)
  mail.Categories = "Awaiting Response"
  mail.Send
End Sub

出现以下错误:

无法标记草稿项目。MarkAsTask 仅对已发送或已接收的项目有效。

可以在用户界面点击“跟进”,邮件发送后会被标记为任务。我认为没有办法以编程方式进行。

4

2 回答 2

1

您甚至需要在 Sent Items 文件夹中列出 Items.ItemAdd 并在传递给事件处理程序的消息上调用 MarkAsTask。

于 2013-10-16T22:52:46.293 回答
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 宏以使其正常工作。

于 2013-10-22T12:36:32.007 回答