0
我正在使用Web項目。我想創建「忘記我的密碼」系統,並在需要時向用戶發送郵件,但是當我嘗試這樣做時,它會給出錯誤,如SmtpException:發送消息失敗,SocketException:由於連接的主機失敗,未正確響應或連接失敗以迴應並且無法發送郵件。我嘗試了2525,25和587端口。我也查了,如果我可以通過mxtoolbox連線smtp.gmail.com:無法通過使用C#使用smtp從本地主機發送郵件
這是SMTP電子郵件服務器測試
這是SMTP DNS測試
這裏是我的代碼:
protected void lblForPass_Click(object sender, EventArgs e)
{
SmtpClient client = new SmtpClient();
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.Host = "smtp.gmail.com";
client.UseDefaultCredentials = false;
client.Port = 25;
client.Timeout = 300000;
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("[email protected]", "1122334455");
client.Credentials = credentials;
MailMessage msg = new MailMessage();
msg.From = new MailAddress("[email protected]");
msg.To.Add(new MailAddress("[email protected]"));
msg.Subject = "Subject Test";
msg.IsBodyHtml = true;
msg.Body = string.Format("<html><head></head><body><b>Body Test</b></body>");
try
{
client.Send(msg);
ScriptManager.RegisterClientScriptBlock(this, GetType(), "Mail Status", "alert('Sended Successfuly')", true);
}
catch(Exception ex)
{
Exception ex2 = ex;
string errorMessage = string.Empty;
while (ex2 != null)
{
errorMessage += ex2.ToString();
ex2 = ex2.InnerException;
}
string err = ex.Message;
ScriptManager.RegisterClientScriptBlock(this, GetType(), "Mail Error", "alert('" +err+"')", true);
}
}
有沒有什麼,我錯過了這個代碼塊或我需要檢查什麼?謝謝。
已經嘗試過端口587.更改我的帳戶設置爲「打開」,並嘗試,但它也沒有幫助。它可以關於我的防火牆嗎? – ReadyFreddy
是的。在我看來,使用第三方服務是一個很好的解決方案。 –