![](/img/trans.png)
[英]MailMessage System.Net.Mail.SmtpException, Error when trying to send email via C# form
[英]C# : SmtpException thrown when trying to send an email
運行時,以下代碼將引發此異常:“其他信息:SMTP服務器需要安全連接,或者客戶端未通過身份驗證。服務器響應為:5.5.1需要身份驗證。”
public static void VerzendMail(Mail opgesteldeMail)
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress(opgesteldeMail.Verzender);
mail.To.Add(opgesteldeMail.Ontvanger.Email);
mail.Subject = opgesteldeMail.Onderwerp;
mail.Body = opgesteldeMail.Data;
SmtpServer.Port = 587;
SmtpServer.Credentials = new NetworkCredential("myEmailAddress", "myPass");
SmtpServer.EnableSsl = true;
SmtpServer.UseDefaultCredentials = false;
SmtpServer.Send(mail);
}
(myEmailAddress和myPass不在代碼變量中,我只是不會放棄該帳戶)
我已經搜索了一段時間,因為似乎很多人都可以得到此錯誤,但是在所有情況下都可以輕松解決(例如添加憑據或內容),但是在我的代碼中情況並非如此。
奇怪的是,這就是為什么我不明白它的原因,兩個月前它起作用了……我們能夠發送有關已生成的新密碼的電子郵件。 在過去的兩個月中,我沒有看過這段代碼,所以idk,也許有人刪除了1行,但我不知道是哪一行?
在調試代碼時,我檢查了所有變量,並使用正確的值等將它們填滿。
我們還嘗試創建一個新的虛擬帳戶進行測試,將其放入myEmailAddress和myPass中,但它也不能正常工作。
我知道很多人之前都曾問過這個問題,但我似乎找不到它,這使我感到難以置信。
感謝您查看這個!
耶
嘗試修改這段代碼:
SmtpServer.Credentials = new NetworkCredential("myEmailAddress", "myPass");
SmtpServer.EnableSsl = true;
SmtpServer.UseDefaultCredentials = false;
對此:
SmtpServer.UseDefaultCredentials = false;
SmtpServer.Credentials = new NetworkCredential("myEmailAddress", "myPass");
SmtpServer.EnableSsl = true;
換句話說, 在設置要使用的憑據之前 ,請嘗試禁用UseDefaultCredentials。
屬性設置的順序可能會有所不同。
我很確定我已經看到了類似的問題,並且重新排序了。 不過,我可能記錯了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.