使用C#调用MailKit.Pop3Client,发现如果不断开重新连接并登录的话,就永远不会收到新邮件,client.GetMessageCount()的值一直不会变化。
按以下代码下载邮件数据,之后重新调用的结果总是一样,就算实际上服务器收到了新邮件,MailKit客户端也不会响应。
using (var client = new Pop3Client()) {
client = new Pop3Client();
client.Connect(Setting.Pop3Host, Setting.Pop3Port, false);
client.AuthenticationMechanisms.Remove("XOAUTH2");
client.Authenticate(Setting.UserName, Setting.Password);
int count = client.GetMessageCount();
var range = client.GetMessageUids();
client.Disconnect();
}
// 难道每次执行任何操作都要执行一遍上面的初始化、连接、登录过程吗?
而且使用方法 DeleteMessage() 删除邮件时,也只有Disconnect()后才会生效。
有没有 Refresh()、ClearCache() 之类清除缓存的方法呢?
毕竟如果每次执行任何操作都要重新连接登录,如果用户频繁删除多个邮件,或者频繁刷新,会造成非必要的开销吧?