如何在outlook c#中复制mailitem

时间:2014-08-19 03:43:05

标签: c# outlook mailitem

我正在编写一个outlook插件, 我需要在收到电子邮件时,它会照常转到默认的收件箱文件夹,但它会复制该传入的电子邮件并将其放入另一个文件夹(例如Junk文件夹)。 但我遇到了异常“无法移动物品”。我一直在移动电子邮件的副本。任何想法?

private void items_ItemAdd(object Item)
 {


    Outlook.MAPIFolder inBox = (Outlook.MAPIFolder)
    this.Application.ActiveExplorer().Session.GetDefaultFolder
    (Outlook.OlDefaultFolders.olFolderInbox);


    // the incoming email
    Outlook.MailItem mail = (Outlook.MailItem)Item;
    //make a copy of it but error occurs
    Outlook.MailItem cItem = mail.copy();
    //
    cItem = (Outlook.MailItem)cItem.Move((Outlook.MAPIFolder)
    this.Application.ActiveExplorer().Session.GetDefaultFolder
    (Outlook.OlDefaultFolders.olFolderJunk));

1 个答案:

答案 0 :(得分:1)

您在ItemAdd事件处理程序中。尝试将项目的条目id存储在变量或列表中并启动计时器(使用Forms命名空间中的计时器)。当时间触发时,您将离开事件处理程序并且应该能够调用MailItem.Move。