System.Web.Mail发邮件引发0x80040217错误的解决过程


使用System.Web.Mail 写了一个发送邮件程序,一直都工作正常。
最近更换新邮件服务器后,发送邮件时出现0x80040217错误。

从网上搜了一下,有用的结果不多,有说是Web.Mail过时,要改用system.net.mail等等。
后来跟踪代码,发现是进行到验证的步骤时出的问题,于是尝试去掉“@域名”,真的可以了。

那为什么不提示用户名错误呢,通过使用控制台telnet测试发现,
新邮件服务的连接,在任何指令出错后都会立即断开,从而引发代码0x80040217错误。

登录之前的邮件服务,用户名必须带域名,而新的又不能带,这个必定是和邮件服务的配置有关。
本着尽量不改动代码的前提,查看了新邮件服务的管理工具,发现创建邮件账号有两种类型:
1普通账号,2域账号
出错时使用的账号类型为普通账号,于是删除并重新创建域账号,再使用带域名的账号登录OK了。

问题解决了,可是又想到代码该如何适应不同的账号要求呢?
先采用一种默认账号格式登录,失败后再尝试另一种格式。

System.Web.Mail发邮件引发0x80040217错误的解决过程,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。