使用SSL的SMTP电子邮件消息不能与ASP.NET中的GoDaddy电子邮件地址一起使用

Jac*_*amm 5 c# asp.net email ssl

当我尝试在我的新GoDaddy电子邮件地址上使用SSL发送STMP电子邮件时,它不起作用.我收到一条错误消息说Unable to read data from the transport connection: net_io_connectionclosed.

以下是服务器的电子邮件设置:

在此输入图像描述

这是我的web.config中包含电子邮件服务器信息的片段:

<system.net>
  <mailSettings>
    <smtp from="no-reply@mysite.com" >
      <network host="smtpout.secureserver.net" port="465" userName="no-reply@mysite.com" password="password123" enableSsl="true" />
    </smtp>
  </mailSettings>
</system.net>
Run Code Online (Sandbox Code Playgroud)

这是发送电子邮件的C#代码.

MailMessage message = new MailMessage();
message.To.Add(new MailAddress(to));
message.Subject = "Message from " + inputModel.Name;
message.Body = body;
message.IsBodyHtml = true;

using (var smtp = new SmtpClient())
{
    smtp.Send(message);
}
Run Code Online (Sandbox Code Playgroud)

端口80,3535和25在没有SSL的情况下工作正常,但四者中没有一个使用 SSL.我甚至尝试使用SSL端口587,经过相当长的一段时间它才刚刚超时.

如何使用SSL发送这些电子邮件?

Mat*_*int 3

在这个较旧的问题中对此有很多内容,包括问题的描述 -SmtpClient仅支持“显式 SSL”,并且您需要执行“隐式 SSL”才能直接在端口 465 上谈论 SSL。

比此处讨论的选项更好、更现代的方法是使用具有隐式 SSL 支持的维护良好的库。 MailKit将是一个很好的方法。

或者,考虑使用第三方电子邮件中继服务,例如 SendGrid、Mandrill、Mailgun 等。这样做将大大提高用户在收件箱而不是垃圾邮件文件夹中实际收到您的邮件的几率。