[英]System.Net.Mail.SmtpException: Insufficient system storage. The server response was: 4.3.1 Insufficient system resources
[英]System.Net.Mail.SmtpException: 'Mailbox unavailable. The server response was: Requested mail action not taken: mailbox unavailable'
由於雅虎對用戶身份驗證進行了更改,因此我收到了此消息。 如果我使用雅虎建議的選項,我的代碼仍然有效,即:
在切換應用程序或更新應用程序時,您可以授予舊應用程序臨時訪問權限。 請記住,這不是用於永久訪問,之后您需要將其關閉。 打開允許使用安全性較低的應用程序登錄。一旦該功能打開,您將收到定期警報,提醒您將其關閉...
我的問題是如何在不打開的情況下更新我的代碼以使其正常工作
允許使用不太安全的登錄的應用程序。
在雅虎方面?
代碼:
private void Test_Click(object sender, EventArgs e)
{
MailMessage mail = new MailMessage("userid@yahoo.com", "user@example.com", "Test", "Hello World");
SmtpClient smtp = new SmtpClient();
smtp.UseDefaultCredentials = false;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.EnableSsl = true;
smtp.Host = "smtp.mail.yahoo.com";
smtp.Port = 587;//I tried 465 as well
smtp.Credentials = new NetworkCredential( "userid@yahoo.com", "myPassword");
smtp.Send(mail);
}
為了避免使用該選項,您需要使用OAuth2而不是用戶 ID 和密碼進行身份驗證。
您需要在Yahoo 注冊您的應用程序。 然后通過 OAuth2 工作流程:
為此,您將需要第三方庫。 我認為 SmtpClient 不支持 OAuth,您需要一個庫來為您處理其他 OAuth 詳細信息。
這是一個如何使用 MailBee.Net(商業電子郵件庫)進行 OAuth 的示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.