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


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

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

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

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

问题解决了,可是又想到代码该如何适应不同的账号要求呢?
先采用一种默认账号格式登录,失败后再尝试另一种格式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值