当有传入邮件更新传入电子邮件时触发代码

时间:2017-10-08 17:29:30

标签: vba outlook

我正在尝试更新所有收到的电子邮件。

当电子邮件进入时,代码会触发,但是,它会更新已选择的邮件项目'在那个时间点不是新邮件。

'运行脚本'选项不可用,我们的IT部门尚未准备好更改注册表。

Private Sub Application_NewMail()
Call InsertNum
End Sub

Sub InsertNum()
Dim Mail As Outlook.MailItem

Set Mail = Application.ActiveExplorer.Selection(1)

Mail.Subject = "10" & Mail.Subject

Mail.Save
End Sub

2 个答案:

答案 0 :(得分:0)

不使用NewMail事件,而是使用NewMailEx - 它会传递一个可用于调用Namespace.GetItemfromId的条目ID列表。

答案 1 :(得分:-1)

NewMailEx事件处理程序提供收到项的EntryID字符串。

void MyApplication_NewMailEx(string anEntryID)
{
  Outlook.NameSpace namespace = Application.GetNamespace("MAPI");  
  Outlook.MAPIFolder folder = Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox );
  Outlook.MailItem mailItem = (Outlook.MailItem) outlookNS.GetItemFromID( anEntryID, folder.StoreID );

  // ... process the mail item
}