0
我正在使用以下代碼檢索電子郵件。但是當我嘗試連接服務器時,我得到一個Socket異常(client.Connect(uri,cancel.Token);)。使用MailKit從Gmail中檢索電子郵件
未處理的異常: System.Net.Sockets.SocketException:連接超時
using MailKit;
using MimeKit;
using System.Net;
using System.Threading;
using MailKit.Net.Pop3;
namespace TestMail
{
class Program
{
public static void Main (string[] args)
{
using (var client = new Pop3Client()) {
var Server = "gmail.com";
var Port = "995";
var UseSsl = false;
var credentials = new NetworkCredential("[email protected]", "abc");
var cancel = new CancellationTokenSource();
var uri = new Uri(string.Format("pop{0}://{1}:{2}", (UseSsl ? "s" : ""), Server, Port));
//Connect to email server
client.Connect(uri, cancel.Token);
client.AuthenticationMechanisms.Remove ("XOAUTH2");
client.Authenticate (credentials, cancel.Token);
//Fetch Emails
for (int i = 0; i < client.Count; i++) {
var message = client.GetMessage (i);
Console.WriteLine ("Subject: {0}", message.Subject);
}
//Disconnect Connection
client.Disconnect(true);
}
}
}
}
完成更改後,我在同一個地方得到了不同的異常 - 未處理的異常: MailKit.Net.Pop3.Pop3ProtocolException:POP3服務器意外斷開連接。 – user1925406
當我將useSsl設置爲true時,它正在連接,但引發了身份驗證異常----未處理的異常: MailKit.Net.Pop3.Pop3ProtocolException:POP3服務器未響應AUTH命令的+ OK響應。當我登錄到我的Gmail賬戶時,它已經登錄了。這是否意味着gmail阻止了我的身份驗證,並且有什麼方法可以解除它的阻止嗎? – user1925406
是的,這意味着Google會阻止它。您需要進入GMail設置並啓用POP3支持。您可能還需要啓用對「安全性較低的應用程序」的支持(或者作爲Google開發者註冊並獲得OAuth2令牌並開始使用OAuth2身份驗證)。 – jstedfast