1

这是我的简化代码:

using ImapX;

private ImapClient Client { get; set; }

private void SetupListener(string mail, string password)
{
    Client = new ImapClient();
    Client.Connect("imap.gmx.net", 993, true);
    // Client.IsConnected == true

    Client.Login(mail, password);
    // Client.IsAuthenticated == true

    // Test 1
    Client.Folders.Inbox.OnNewMessagesArrived += MessageArrived;
    // Test 2
    Client.OnNewMessagesArrived += MessageArrived;
}

private void MessageArrived(object sender, IdleEventArgs e)
{
    MessageBox.Show("This never pops up!");
}

这已经显示了我的问题。MessageArrived永远不会被调用。我与 2 个不同的提供商进行了尝试。两者(t-online.de 和 gmx.net)都存在同样的问题。

知道这里发生了什么吗?文档
没有显示除此之外 的任何内容。

4

1 回答 1

1

Client.Folders.Inbox.StartIdling();请在订阅后尝试拨打电话。

这将帮助您实时接收消息。

我在这里参考文档

ImapX 支持空闲,因此您可以及时接收新消息。一旦新消息到达当前文件夹,它们将被自动下载并触发一个事件。

于 2017-08-29T13:44:27.950 回答