2017-10-08 21 views
0

我试图更新所有传入的电子邮件。当有传入邮件更新传入电子邮件时触发代码

当电子邮件进入时,代码触发,但是,它更新当时选择的邮件项目,而不是新邮件。

“运行脚本”选项不可用,我们的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 

回答

0

除了使用NewMail事件,使用NewMailEx - 它通过条目号,您可以使用呼叫Namespace.GetItemfromId的列表。

-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 
} 
+0

感谢您的快速响应。然而,它会引发错误...我不清楚如何解决它。对于Outlook VBA我很新,很抱歉。 – Ram

+0

你能更具体吗?哪行代码会引发错误? –

+0

谢谢尤金。我用箭头显示了错误。 子InsertNum() 昏暗邮件作为Outlook.MailItem - >>下面2行是显示 “方法或数据成员未找到” Outlook.NameSpace名称空间= Application.GetNamespace( “MAPI”) Outlook.MAPIFolder Folder = Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) - >>下面的行显示语法错误 Outlook.MailItem mailItem =(Outlook.MailItem)outlookNS.GetItemFromID(anEntryID,folder.StoreID) – Ram

相关问题