到目前为止,我很高兴使用类似于以下的方法连接到我的 Gmail 帐户:
\npublic async Task<IEnumerable<MimeMessage>> GetMessagesAsync()\n{\n using var imapClient = new MailKit.Net.Imap.ImapClient();\n var secureSocketOptions = SecureSocketOptions.Auto;\n if (useSsl) secureSocketOptions = SecureSocketOptions.SslOnConnect;\n await imapClient.ConnectAsync(host, port, secureSocketOptions);\n\n await imapClient.AuthenticateAsync(login, password);\n\n await imapClient.Inbox.OpenAsync(FolderAccess.ReadOnly);\n\n var uids = await imapClient.Inbox.SearchAsync(SearchQuery.All);\n\n var messages = new List<MimeMessage>();\n foreach (var uid in uids)\n messages.Add(await imapClient.Inbox.GetMessageAsync(uid));\n\n imapClient.Disconnect(true);\n\n return messages;\n}\nRun Code Online (Sandbox Code Playgroud)\n自 2022 年 5 月 30 日起,这不再可能,因为对“不太安全的应用程序”的支持已被禁用:
\n\n\n为了确保您帐户的安全,从 2022 年 5 月 30 日起,\xe2\x80\x8b\xe2\x80\x8bGoogle 不再支持使用要求您仅使用您的帐户登录 Google 帐户的第三方应用或设备。用户名和密码。
\n
现在如何将 Mailkit 与 Gmail …
我将在接下来的 8 小时内部署一个网站,而 Gmail 只是停止接受 PHPmailer 登录我的帐户。起初它在测试时工作了好几个小时。然后,它就停止工作了.. 我已经允许所有允许不太安全的应用程序从 gmail 登录,但它仍然不允许 phpmailer 登录。我想跳下悬崖!
这是几个小时前运行良好的相同代码:
$mail->SMTPDebug = 0;
$mail->isSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Username = 'myemail@gmail.com';
$mail->Password = 'password';
$mail->SMTPSecure = 'ssl';
$mail->Port = 587;
Run Code Online (Sandbox Code Playgroud)
然后出于某种原因,gmail 刚刚开始阻止登录尝试。我希望我能在这里得到一些帮助,我已经找了一个多小时了,但还是一无所获。
谢谢!