【问题标题】:Asp.net Failure sending mail after enabling TLS1.2启用 TLS1.2 后 Asp.net 发送邮件失败
【发布时间】:2018-07-23 06:02:35
【问题描述】:

我有 Windows 专用服务器托管 20 多个网站,这些网站都是使用 asp.net 构建的。 我所有的网站都完美地使用 Gmail SMTP 发送电子邮件,但 2 天前我要求技术支持启用 TLS1.2 并禁用 TLS1.0;发生这种情况时,所有电子邮件都停止了!

我已经尝试了所有解决方案Here,但仍然没有用! 最后,我尝试使用其他电子邮件提供商而不是 Gmail,并且电子邮件发送成功。

有人知道使用 TLS1.2 的 Gmail 服务会发生什么吗?

这里是代码示例:

 public static bool SendMail(MailAddressCollection TO_List, string Subject, string Body, bool Is_Html_Body, System.Collections.Hashtable Attachments)
    {

        MailMessage msg = new MailMessage();
        msg.Subject = Subject;
        msg.Body = Body;
        msg.BodyEncoding = System.Text.Encoding.UTF8;
        msg.IsBodyHtml = Is_Html_Body;
        msg.Priority = MailPriority.High;
        SmtpClient sc = new SmtpClient();
        if (Attachments != null)
        {
            foreach (Attachment AttachmentObj in Attachments.Values)
            {
                msg.Attachments.Add(AttachmentObj);
            }
        }
        foreach (MailAddress To_Address in TO_List)
        {
            msg.To.Add(To_Address);
        }
        sc.Send(msg);
        return true;
    }

这是 web.config 数据:

<smtp from="myemail@gmail.com">
    <network defaultCredentials="false" host="smtp.gmail.com" password="Pass here" userName="myemail@gmail.com" enableSsl="true" port="587" />
  </smtp>

【问题讨论】:

  • 如果您能提供minimal reproducible example,那就太好了。
  • 您在 Web 应用中使用的 .net 版本是什么?
  • 查看:C# ASP.NET Send Email via TLS 尝试启用 SSL
  • 您是从代码发送邮件吗?还是直接从 GMAIL 本身发送邮件?如果您是从代码发送邮件,那么您必须添加一封来自您托管站点的已注册/经过身份验证的邮件。
  • @RamlalS 我已经在 web.config 文件中添加了电子邮件:

标签: c# asp.net web gmail


【解决方案1】:

终于,我找到了解决办法; 经过大量搜索,我发现我必须在 global.asax.cs 文件的 Application_Start() 函数中添加这行代码。

 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

【讨论】:

  • FWIW 此解决方案也适用于您需要强制 System.Net.WebClient 实例使用 TLS 1.2 的场景。当然,理想的解决方案是针对较新的框架,但有时您需要让针对旧框架的旧项目在紧要关头工作!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-03
  • 2014-08-29
  • 2016-04-11
  • 2014-11-18
  • 1970-01-01
  • 2014-08-09
相关资源
最近更新 更多