自定义outlook插件未按预期下载

自定义outlook插件未按预期下载,outlook,outlook-addin,Outlook,Outlook Addin,我已经编写了一个自定义代码,这样当有附件的电子邮件到达时,它必须下载到一个共享位置,并且电子邮件每天都会到达 当我每天打开我的笔记本电脑时,如果我不打开,并且如果有连续的带有附件的邮件,并且没有下载,那么它工作正常。例如,当我在周一打开我的笔记本电脑时,我有3封来自satu、sunday、周一的带有附件的邮件 它并没有从周一下载最新的报告,而是在周六向我展示同样的报告 这是我的密码 private void ThisAddIn_Startup(object sender,System.Event

我已经编写了一个自定义代码,这样当有附件的电子邮件到达时,它必须下载到一个共享位置,并且电子邮件每天都会到达

当我每天打开我的笔记本电脑时,如果我不打开,并且如果有连续的带有附件的邮件,并且没有下载,那么它工作正常。例如,当我在周一打开我的笔记本电脑时,我有3封来自satu、sunday、周一的带有附件的邮件

它并没有从周一下载最新的报告,而是在周六向我展示同样的报告

这是我的密码

private void ThisAddIn_Startup(object sender,System.EventArgs e) {
    outlookNameSpace=this.Application.GetNamespace("MAPI");
    inbox=outlookNameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
    items=inbox.Items;
    items.ItemAdd +=new Outlook.ItemsEvents_ItemAddEventHandler(items_ItemAdd);
}
private void items_ItemAdd(object Item) {
    Outlook.Items inboxitems;
    const string destinationDirectory=@"\\Service Now\";
    Outlook.MailItem newEmail=null;
    inboxitems=inbox.Items.Restrict("[Unread] = true");
    try {
        foreach (object collectionItem in inboxitems) {
            newEmail=collectionItem as Outlook.MailItem;
            if (newEmail !=null) {
                if (newEmail.Attachments.Count > 0) {
                    for (int i=1; i <= newEmail.Attachments.Count; i++) {
                        if (newEmail.Attachments[i].FileName.Contains("Logic")) {
                            //   String Des= destinationDirectory.Remove(0, 1);
                            newEmail.Attachments[i].SaveAsFile(destinationDirectory + newEmail.Attachments[i].FileName);
                            //  MessageBox.Show("Hurry");
                        }
                    }
                }
            }
        }
    }catch (System.Exception ex) {
        MessageBox.Show(""+ex);
    }
}

你试过调试代码吗

我在代码中看到以下条件:

inboxitems= inbox.Items.Restrict("[Unread] = true");

确保电子邮件符合上述条件

请注意,在超过16次向文件夹中添加大量项目时,不会激发Items类的ItemAdd事件


另外,请尝试签出Outlook项目的属性—一个值,该值确定远程用户收到项目后项目的状态。

调试工作正常,问题是只有在周一打开笔记本电脑时,才有周六、周日和周一早上的3封邮件。我没有超过16个仍然没有得到下载。inboxitems=inbox.Items.Restrict[Unread]=true;//这表示未阅读电子邮件,如果是newEmail.Attachments[i],则为真.FileName.Contains Logic//如果电子邮件附件conatins name as Logic only,则它将下载到我的共享位置项目添加:我没有超过16个项目,但它尚未下载。请尝试签出Outlook项目的属性-该值用于确定远程用户收到项目后的状态。
if (newEmail.Attachments[i].FileName.Contains( "Logic"))