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
是的。在我看来,使用第三方服务是一个很好的解决方案。 –