1. 首页>
  2. 技术文章>
  3. System.Net.Mail 使用SSL(465端口)阿里云发送邮件失败的解决办法

System.Net.Mail 使用SSL(465端口)阿里云发送邮件失败的解决办法

11/30/20 2:28:02 PM 浏览 1204 评论 0

mail

System.Net.Mail支持Explicit SSL但是不支持Implicit SSL,而国内的邮件服务器支持的SSL几乎都是Implicit SSL。所以,如果使用国内邮件服务器发送SSL邮件,不能使用System.Net.Mail,可以利用CDO.Message发邮件。

C#利用CDO.Message发送邮件:

cod.message的引用位置: C:\Windows\System32\cdosys.dll

示例代码:

CDO.Message objMail = new CDO.Message();
try
{
objMail.To = "接收人邮件帐号";
objMail.CC = "抄送人邮件帐号";
objMail.From = "发送人邮件帐号";
objMail.Subject = "邮件主题";
objMail.HTMLBody = "邮件内容";
objMail.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/smtpserverport"].Value = 465;//端口
objMail.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/smtpserver"].Value = "smtp服务器地址";
objMail.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/sendemailaddress"].Value = "发送人邮件帐号";
objMail.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/smtpuserreplyemailaddress"].Value = "发送人邮件帐号";
objMail.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/smtpaccountname"].Value = "发送人邮件帐号";
objMail.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/sendusername"].Value = "发送人邮件帐号";
objMail.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"].Value = "发送人邮件帐号的登录密码";
objMail.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/sendusing"].Value = 2;
objMail.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"].Value = 1;
objMail.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/smtpusessl"].Value = "true";//是使用ssl
objMail.Configuration.Fields.Update();
objMail.Send();
}
catch (Exception ex) { throw ex; }
finally { }
objMail = null;


网友讨论