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();`
阅读 10k
1 个回答
✓ 已被采纳新手上路,请多包涵

把自己找的资料整合如下:
.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;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进