c# - asp.net SMTP发送邮件SSL协议465端口,邮箱服务器从域名换成ip就发送不了
本文介绍了c# - asp.net SMTP发送邮件SSL协议465端口,邮箱服务器从域名换成ip就发送不了的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
发送邮件,用smtpclient发送发现不支持ssl的465端口,改用CDO.Message可以发送,服务器地址使用域名可以发送成功,但把服务器地址换成IP地址就报与服务器的传输连接失败,但用outlook、foxmail这些邮件客户端用IP地址和域名都可以发送,各位有没有碰到过的,怎么解决?谢谢大家了
`
CDO.Message oMsg = new CDO.Message();
Configuration conf = new ConfigurationClass();
conf.Fields[CdoConfiguration.cdoSendUsingMethod].Value = CdoSendUsing.cdoSendUsingPort;
conf.Fields[CdoConfiguration.cdoSMTPAuthenticate].Value = CdoProtocolsAuthentication.cdoBasic;
conf.Fields[CdoConfiguration.cdoSMTPUseSSL].Value = true;
conf.Fields[CdoConfiguration.cdoSMTPServer].Value = this.Host;
conf.Fields[CdoConfiguration.cdoSMTPServerPort].Value = this.Port;
conf.Fields[CdoConfiguration.cdoSendEmailAddress].Value = "<" + this.From + ">";
conf.Fields[CdoConfiguration.cdoSendUserName].Value = this.From;
conf.Fields[CdoConfiguration.cdoSendPassword].Value = this.Password;
conf.Fields.Update();
oMsg.Configuration = conf;
oMsg.HTMLBody = this.Body;
oMsg.Subject = this.Subject;
oMsg.From = this.From;
oMsg.To = this.To;
oMsg.Send();`
解决方案
把自己找的资料整合如下:
.net framework下的SmtpClient不支持SSL的465端口,换成587端口可用不过我没试(详情见此)。CDO.Message和MailMessage可以发送但是如果SSL证书不可信的时候发送不成功,我把域名换成IP地址发送不成功估计就是这个原因,目前没找到解决方法。
.net core下NuGet安装MailKit可以发送,不过证书不可信时也要报错,要加下面一句设置证书可信才能发送成功。
var client = new SmtpClient();
client.ServerCertificateValidationCallback = (s, c, h, e) => true;
这篇关于c# - asp.net SMTP发送邮件SSL协议465端口,邮箱服务器从域名换成ip就发送不了的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文