You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Outlook ItemAdd事件无法持续生效问题排查与解决咨询

问题:Outlook ItemAdd事件监听程序运行几天后失效

我开发了一个小型C#程序,通过ItemAdd事件监听Outlook,但程序运行几天后便会失效(例如周一启动,周三或周四出现故障),必须重启才能恢复。这应该不是内存问题,我配备了32G内存。运行环境为Win10 21H1、Outlook 2016、.NET Framework 4.7.2。

原始实现代码

public partial class Form2 : Form
{
    private NameSpace _ns;
    private readonly ApplicationClass _outlook = new ApplicationClass();
    private readonly StringProcessor _processor = new StringProcessor();
    private Items _items;

    public Form2()
    {
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        try
        {
            Main();
        }
        catch (System.Exception ex)
        {
        }
    }

    private void Main()
    {
        try
        {
            _ns = _outlook.GetNamespace("MAPI");
            MAPIFolder myFolder;

            if (Environment.UserName == XmlService.UserName)
            {
                var box = XmlService.Inbox;
                myFolder = GetFolderItem(box);
            }
            else
            {
                myFolder = _ns.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
            }

            if (myFolder != null)
            {
                _items = myFolder.Items;
                _items.ItemAdd += Items_ItemAdd;
            }
            else
            {
                Loger.PrintLog("Can not get folder");
            }
        }
        catch (System.Exception e)
        {
            Loger.PrintLog(e.Message);
        }
    }

    private void Items_ItemAdd(object item)
    {}
}

问题解决

放弃了COM方式处理,改用MailKit后问题得到解决,流程清晰顺畅。

内容的提问来源于stack exchange,提问作者Christopher Leung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 04:15:35