这是我的简化代码:
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
永远不会被召唤。
我尝试了两个不同的提供商。 (t-online.de和gmx.net)同样存在问题。
有什么想法在这里发生吗? documentation并未显示任何其他内容。
答案 0 :(得分:1)
请在订阅后尝试拨打Client.Folders.Inbox.StartIdling();
。
这将帮助您实时接收消息。
我参考文档here
ImapX支持空闲,因此您可以及时接收新消息。一旦新邮件到达当前文件夹,它们将自动下载并触发事件。