我使用 SmtpClient 发送电子邮件如下代码:
SmtpClient client = new SmtpClient("host", 587);
client.EnableSsl = true;
client.Credentials = new System.Net.NetworkCredential("user", "pass");
MailAddress from = new MailAddress("from_mail", String.Empty, System.Text.Encoding.UTF8);
MailAddress to = new MailAddress("to_mail");
MailMessage message = new MailMessage(from, to);
message.Body = "Say hello";
message.BodyEncoding = System.Text.Encoding.UTF8;
message.Subject = "Testing";
message.SubjectEncoding = System.Text.Encoding.UTF8;
client.Send(message);
Run Code Online (Sandbox Code Playgroud)
如果我使用 .Net Framework 4.5,它将引发错误:由于意外的数据包格式,握手失败。如果我使用 .Net Framework 4.6.1,它将成功发送邮件。
请给我推荐?
可能是 TLS 版本问题。
如果在初始化 SMTP 客户端之前将 System.Net.ServicePointManager.SecurityProtocol 设置为使用 tls1.2,会发生什么情况?
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7137 次 |
| 最近记录: |