【问题标题】:Failure sending mail using asp.net. Connection host has failed to respond使用 asp.net 发送邮件失败。连接主机未能响应
【发布时间】:2016-01-20 15:30:44
【问题描述】:

我想从我的 c# 应用程序发送一个简单的测试邮件

我正在使用以下代码

MailMessage mail = new MailMessage("from", "to");
mail.Subject = "TestEmailImportant";
mail.Body = "This mail is to test if this program is working";

SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);
smtpClient.Credentials = new System.Net.NetworkCredential()
{
    UserName = "xxxxxxxxx@gmail.com",
    Password = "xxxxxx"
};
smtpClient.EnableSsl = true;
smtpClient.Send(mail);
Label1.Text = "Email Sent";

这是在单击按钮时触发的。

每当我单击按钮时,浏览器都会一直“等待主机”,大约一分钟后我会收到此错误

连接尝试失败,因为连接方没有 一段时间后正确响应,或建立连接 失败,因为连接的主机未能响应“某些 IP”。

指向smtpClient.Send(mail); 线。

【问题讨论】:

  • 这是正确的“MailMessage mail = new MailMessage("from", "to")"吗?
  • 由于您使用的是简单身份验证,请确保允许您的 gmail 帐户发件人允许安全性较低的应用访问。 (support.google.com/accounts/answer/6010255?hl=en)
  • 是的,我允许对不太安全的应用进行授权。
  • 重复:这是正确的“MailMessage mail = new MailMessage("from", "to")"吗?
  • 我认为是。 MailMessage mail = new MailMessage("fromaccount@gmail.com", "toaccount@gmail.com");

标签: c# asp.net email


【解决方案1】:

注册 Gmail 并转到https://www.google.com/settings/security/lesssecureapps,您可以在其中查看设置。 访问不太安全的应用程序

Turn off (default) ==> Turn On    

添加此代码后,

  MailMessage mail = new MailMessage("fromm@gmail.com", "toaddress@gmail.com");
                mail.Subject = "TestEmailImportant";
                mail.Body = "This mail is to test if this program is working";

                SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);

                smtpClient.Credentials = new System.Net.NetworkCredential()
                {
                    UserName = "XXXXXX@gmail.com",
                    Password = "YYYYYYYY"
                };

                smtpClient.EnableSsl = true;
                System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate(object s,
                        System.Security.Cryptography.X509Certificates.X509Certificate certificate,
                        System.Security.Cryptography.X509Certificates.X509Chain chain,
                        System.Net.Security.SslPolicyErrors sslPolicyErrors)
                {
                    return true;
                };

                smtpClient.Send(mail);

【讨论】:

  • 给出错误:错误 3 并非所有代码路径都以“System.Net.Security.RemoteCertificateValidationCallback”类型的匿名方法返回值
  • 再次尝试没有错误但同样失败发送邮件。
  • 终于有了这个解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-17
  • 1970-01-01
  • 1970-01-01
  • 2017-11-08
相关资源
最近更新 更多