Mailkit MoveTo 方法的问题挂起或抱怨线程

问题描述 投票:0回答:0

我有我认为是简单的代码来打开收件箱,循环浏览消息并将它们移至垃圾箱。出于某种原因,MoveTo 正好挂起 2 分钟,然后因找不到主机名而失败。如果我打开一个邮件客户端,我可以看到它立即成功地完成了移动。如果我更改对 MoveToAsync 的调用,它也会进行移动,但 iMapClient 正忙于另一个线程的例外情况。

            ImapClient client = new ImapClient();
            try
            {

                using (client)
                {
                    client.Connect(EXT_IMAP_SERVER, EXT_IMAP_PORT, SecureSocketOptions.None);

                    client.Authenticate(EXT_USERNAME, EXT_PASSWORD);

                    IMailFolder inbox = client.Inbox;
                    inbox.Open(FolderAccess.ReadWrite);
                    IMailFolder deletedItems = client.GetFolder("Deleted Items");
                    int totalMessages = inbox.Count;

                    for (int i = 0; i < totalMessages; i++)
                    {
                        // get message
                        var message = inbox.GetMessage(i);
                        AddOutputMsg("Received Msg from:" + message.From);
                        //  process
                        //var theAttachments = message.Attachments;
                        //  Move to deleted items
                        inbox.MoveToAsync(i, deletedItems);
                 
                        Application.DoEvents();                        
                    }
                    client.Disconnect(true);
                }
            }
            catch (Exception e)
            {                
                AddOutputMsg(e.ToString());
            }

这就是项目中使用mailkit的所有代码,没有其他代码访问ImapClient。

我试过在 imapclient、收件箱和文件夹上使用锁定命令,结果都一样。

c# mailkit
© www.soinside.com 2019 - 2024. All rights reserved.