2013-06-27 26 views
0

我嘗試構建一個加載項,該附件將特定主題的郵件保存爲附件。 直到現在,這工作正常,但我認爲即時通訊使用錯誤的事件處理程序爲我的需要。Outlook加載項,右側事件處理程序

它應該開始,如果一個新的郵件進來,然後檢查整個收件箱+新郵件。使用Microsoft.Office.Interop.Outlook.ApplicationEvents_11_NewMailEventHandler()

ATM IM
所以他只是在尋找無新項目的收件箱,因爲在那一刻的收件箱中的新郵件的心不是部分

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
    {     
     this.Application.NewMail += new Microsoft.Office.Interop.Outlook 
     .ApplicationEvents_11_NewMailEventHandler(ThisAddIn_NewMail); 


    } 

我能做些什麼呢?

回答

0

您可以假定電子郵件將被讀取,因此您應該可以使用Items.Find/FindNext查找未讀消息。或者您可以存儲上次處理的電子郵件的日期,並再次使用Items.Find/FindNext搜索CreationTime大於某個值的消息。

+0

好主意,但我認爲收到的郵件項目不存在,而我的加載項正在運行,因爲「NewMail」事件在新項目存儲在收件箱 之前啓動,所以我不能搜索新郵件 這是我的解釋... – RobertZ

+0

當NewMail發生火災時,該項目可以訪問。更重要的是,您可以使用NewMailEx事件,它實際上傳遞新消息的條目標識。現在的問題是,如果您正在訪問Exchange郵箱,則Outlook(和您的代碼)未運行時,郵件可能會到達。然後,當Outlook啓動時,沒有任何事件會在聯機模式下觸發(您擁有的是收件箱中的新未讀消息),或者在緩存模式下,當新消息發生時,Items.ItemAdd甚至會在收件箱文件夾中觸發被同步到本地(緩存)存儲。 –

+0

非常感謝! 與此信息和一點點的幫助形式這篇文章:http://stackoverflow.com/questions/8562214/itemadd-e-a-a-public-folder-on-exchange 我成功了:D – RobertZ