c#outlook addin处理收到的邮件 [英] c# outlook addin to process incoming mails

查看:188
本文介绍了c#outlook addin处理收到的邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



我已经创建了加载项来阅读Outlook收到的邮件。但是我的问题是Addin第一次开启前景。



示例:如果我关闭并打开Outlook,对于它工作的第一个传入邮件(显示我的自定义消息),对于第二个邮件,它不显示自定义消息。



我重复了这个过程。只是第一次工作。



Hi All,

I have created add-in to read outlook incoming mails.But My issue is Addin working for the first time of outlook opening.

Example: If I close and open outlook , for the first incoming mail its working(showing my custom message), for second mail onwards its not showing custom messge.

I repeated this process. Only first time its working.

private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            Outlook.MAPIFolder inbox = Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
            inbox.Items.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(InboxFolderItemAdded);
        }




private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}
private void InboxFolderItemAdded(object Item)
{
    if (Item is Outlook.MailItem)
    {       
        // New mail item in inbox folder
        MessageBox.Show("you got mail");
    }
}





请帮帮我。



提前致谢。



Please help me.

Thanks in advance.

推荐答案

查看下面的示例 MSDN [ ^ ]

check below sample from MSDN[^]
Outlook.NameSpace outlookNameSpace;
Outlook.MAPIFolder inbox;
Outlook.Items items;

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);
}

void items_ItemAdd(object Item)
{
    string filter = "USED CARS";
    Outlook.MailItem mail = (Outlook.MailItem)Item;
    if (Item != null)
    {
        if (mail.MessageClass == "IPM.Note" &&
                   mail.Subject.ToUpper().Contains(filter.ToUpper()))
        {
            mail.Move(outlookNameSpace.GetDefaultFolder(
                Microsoft.Office.Interop.Outlook.
                OlDefaultFolders.olFolderJunk));
        }
    }

}





您案例中的项目对象将是垃圾离开该代码块后收集,您可以创建类级变量(作为MSDN示例代码),然后将事件挂钩到该对象。



Items object in your case will be garbage collected after leaving that block of code, you can create class level variable(as MSDN sample code) and then hook the event to that object.


这篇关于c#outlook addin处理收到的邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆