c# - C# 在 Windows Server 2008 R2 上使用 System.Web.Mail 发送认证邮件时出错
问题描述
在端口 465 (tls1.2) 上发送认证邮件 (System.Web.Mail.MailMessage) 仅在 windows server 2008 r2 上失败
我有一个基于框架 4.5 的函数,但它使用旧库(System.Web.Mail.MailMessage)通过端口 465(认证邮件 tls1.2)上的 smtp 服务器发送电子邮件,该函数在 Windows 10 上正确运行和 windows server 2012 但在 windows server 2008 r2 上失败。该错误属于 System.Web.HttpException 类型,表明它无法访问服务器,但在端口 465 上进行 telnet 有效。windows server 2008 r2有什么问题?
try
{
System.Web.Mail.MailMessage newMail = new System.Web.Mail.MailMessage();
newMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", "server");
newMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", "465");
newMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", "2");
newMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
newMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "username");
newMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "pwd");
newMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");
newMail.From = "mail";
newMail.To = "mail";
newMail.Subject = "test web Mail";
newMail.BodyFormat = System.Web.Mail.MailFormat.Html;
newMail.Body = "body....";
newMail.Priority = System.Web.Mail.MailPriority.High;
System.Web.Mail.SmtpMail.SmtpServer = "smtpserver:465";
System.Web.Mail.SmtpMail.Send(newMail);
Console.WriteLine("Email Send");
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
System.We.HttpException (0x80004005) 传输无法连接到服务器
解决方案
推荐阅读
- visual-studio-2019 - 无需运行应用即可预览剃须刀设计
- node.js - 节点模式中的 sokect 客户端数据处理
- algorithm - 将数组划分为具有最小和差的固定大小的子集
- python-3.x - 如何在没有库的情况下在 Python 中找到两个向量之间的 L1-Norm/Manhattan 距离
- solaris - solaris:在标准输入上设置的 O_NDELAY:当进程退出时,shell 退出
- python - 排除 rdd 映射中的特定列
- python - 如何在 tkinter 中将用户输入目录作为函数返回?
- c# - 如何在c#中将字符串日期(yyyy)转换为日期格式
- azure - 将 SSL 添加到 Azure Blob 静态站点
- python - 在 Microsoft Outlook 的电子邮件邀请中看不到活动标题