如何在“已发送邮件”文件夹中使用ItemAdd?

时间:2018-01-29 07:14:09

标签: vba email outlook outlook-vba

这个问题看起来应该在这里回答: Outlook VBA Save Copy Sent Item

我无法找到引用的" Items.ItemAdd" VB Editor for Outlook 2016中的事件列表中的事件。

Application.ItemSend位于" ThisOutLookSession"。我想出的脚本看起来与原问题中发布的脚本相似90%,我遇到了同样的问题。邮件项目保存在预发送条件中。

我无法使用" MailItem.SaveSentMessageFolder"因为我试图将发送的邮件移动到PST。

活动在这里解释: https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/items-itemadd-event-outlook

如果有人要求"为什么不使用AutoArchive功能?",我的组织为Sent Items和AutoArchive设置了一些糟糕的组策略。我无法通过混乱来获取已设置的已发送项目的AutoArchive。

1 个答案:

答案 0 :(得分:1)

使用Items.ItemAdd Event (Outlook)

实施例

Option Explicit
Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
    Dim olNs As Outlook.NameSpace
    Dim Inbox  As Outlook.MAPIFolder

    Set olNs = Application.GetNamespace("MAPI")
    Set Inbox = olNs.GetDefaultFolder(olFolderSentMail)
    Set Items = Inbox.Items
End Sub

Private Sub Items_ItemAdd(ByVal Item As Object)
    If TypeOf Item Is Outlook.mailitem Then
'        code to copy the sent Item here
    End If
End Sub