SMTP客户端未通过身份验证等多种错误解决方案分享

 更新时间:2020年6月25日 11:24  点击:1436

最近在做邮件发送接口 把遇到的问题和解决方法告诉大家  希望对了解邮件的人有所帮助

原程序部分代码如下 

 //设置邮件信息 发件人地址、收件人地址、标题、主题
 MailMessage mail = new MailMessage("xxxxxxx@sina.com", "zzzzzzz@sina.com", "标题", "主题");
 //设置邮件主题格式
 mail.BodyEncoding = Encoding.UTF8;
 //设置邮件主体格式是否为 html 格式
 mail.IsBodyHtml = false;

 //验证邮箱用户名 密码
 NetworkCredential work = new NetworkCredential("xxxxxxx", "pwd");
  //验证 用户名 密码
 client.Credentials = work;

 //设置邮箱smtp服务器 端口
 SmtpClient client = new SmtpClient("smtp.sina.com");
 
 //是否请求一起发送
 client.UseDefaultCredentials = false;
 //设置邮件发送格式
 client.DeliveryMethod = SmtpDeliveryMethod.Network;
 //安全连接设置
 client.EnableSsl = false;

 client.Send(mail);

错误一:“/”应用程序中的服务器错误。

SMTP 服务器要求安全连接或客户端未通过身份验证。 服务器响应为: 5.7.1 Client was not authenticated
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Net.Mail.SmtpException: SMTP 服务器要求安全连接或客户端未通过身份验证。 服务器响应为: 5.7.1 Client was not authenticated

解决方法  :

 //设置邮箱smtp服务器 端口
 SmtpClient client = new SmtpClient("smtp.sina.com",587); 

解决说明:我加上了端口号,587属于发送邮件端口   一般出现此错误会出现在你设置的163的接受者时发生   QQ的没有问题!

错误二 :“/”应用程序中的服务器错误。

服务器不支持安全连接。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Net.Mail.SmtpException: 服务器不支持安全连接。   我将 //安全连接设置   client.EnableSsl = True;后发生的错误

解决方法 :方法一 设置成“client.EnableSsl = false ”或去掉这句代码
                        方法二 开启安全连接服务

错误三:SMTP 服务器要求安全连接或客户端未通过身份验证。 服务器响应为: Authentication required 
堆栈跟踪:   [SmtpException: SMTP 服务器要求安全连接或客户端未通过身份验证。 服务器响应为: Authentication required]

解决方法:
client.EnableSsl = false; 改为 client.EnableSsl = true;  但是这样该后可能会出现“错误二”的提示,所以要解决
这个的话 首先保证服务器是支持安全连接的

错误四:
SMTP 服务器要求安全连接或客户端未通过身份验证。 服务器响应为: 5.7.0 Must issue a STARTTLS command first. 9sm5225813ywf.35

解决方法:sina要求用ssl连接 可以改一下true   

万能解决方法:
1、POP3和SMTP服务器要填正确
2、服务器的端口要正确
3、我的服务器要求身份认证
4、发送邮件的用户名和密码要正确

//设置邮箱smtp服务器 端口
SmtpClient client = new SmtpClient("smtp.sina.com",587); 就可以了
163的最固执了!需要注意点 QQ最好过!呵呵

有些时候邮件被退信的原因  提供以下解决方法:

一、FOXMAIL发送邮件常见出错代码:  

问题:the server says:550 relaying mail to <> is not allowed  
问题:The server says:550 <>... relaying denied  
问题:the server says:550 5.7.1 relaying not permitted:
解答:使用某些Smtp服务器时,限制了收件人的地址,只能换一个Smtp服务器。  

问题:The server says:550 <>:local user only  
问题:The server says:550 <>:Invalid User  
问题:The server says:550 Invalid recipient  
解答:使用163.net,163.com,yeah.net和netease.com之类的Smtp服务器时,只能用自身的信箱发信,所以要在Outlook Express的“帐户属性”中的“个人信息”里面填写正确的邮件地址。  

问题:the server says:551 delivery not allowed to non-local recipient  
问题:The server says:553 Relay restriction.  
问题:The server says:553 From <>, message blocked.  
问题:The server says:553 sorry,you are not allow to use this SMTP to relay your eami  
问题:The server says:553 sorry, that domain isn&apost in my list of allowed rcpthosts  
解答:使用21cn.com,china.com,371.net,sina.com等大多数信箱的smtp服务器时,只能用自身的信箱发信,所以要在Outlook Express的“帐户属性”中的“个人信息”里面填写正确的邮件地址。  

问题:The server says:505 client was not authenticated  
问题:The server says:553 authentication is required to send mail as <>  
解答:使用263.net和sohu.com的Smtp服务器时,不但要用自身的邮箱发信,而且要加入身份验证,所以即要在“个人信息”中填写正确邮箱地址,又要选中“SMTP服务器需要认证”。  

问题:The server says:535 Error:authenticatin failed  
问题:The server says:535 Authentication unsuccessful  
问题:The server says:452 Insufficient system storage  
解答:在使用Esmtp认证的过程中出错,检查一下Esmtp设置,多试几次。  

问题:The server says:553 <>...domain name required  
问题:The server says:550 Unable to relay for ...  
解答:多出现在用Wingate代理服务器发送邮件时。虽然在Wingate中“POP3 邮箱帐号”要使用“用户名#POP3地址”的格式,但在“帐户属性”中的“个人信息”中还是要填写一般的格式。  

问题:The server says:553 mailbox name not allowed  
解答:收件人邮箱地址不允许,需检查收件人地址是否正确。

问题:the server says:553 sorry, your envelop sender is in my badmailfrom list  
解答:服务器限制了收件人的地址,只能换一个smtp服务器发信。  

问题:the server says:554 Transaction failed  
问题:The server says:451 Requested action aborted,errno=28  
解答:传输失败,检查网络问题。  

问题:the server says:503 error:needmail command  
问题:The server says:503 need mail before RCPT.  
问题:The server says:503 Bad sequence of commands  
解答:消息命令顺序出错,一般出现在其他错误之后,先检查之前出现的错误提示。  

问题:The Server says:501 syntax.helo hostname  
问题:The server says:501 Invalid domain name  
问题:The server says:502 unimplemented command  
问题:the server says:503 5.0.0 polite people say HELO first  
问题:The server says:533 relay restriction  
问题:The server says:544 <>:Recipient address rejected: Relay access denied  
解答:传输中的语法错误,原因不明。

二、OUTLOOK发送邮件常见出错代码:

0x800C013E 可能是 Folders.dbx 档案属性错误或损坏.
0x800CCC00 身份验证(Authentication)未载入
0x800CCC01 认证(Certificate)内容错误
0x800CCC02 认证日期错误
0x800CCC03 使用者已联机
0x800CCC05 未联机到服务器
0x800CCC0A 邮线下载未完成
0x800CCC0B 服务器忙碌中
0x800CCC0D 找不到主机(检查你的SMTP服务器是不是设错,亦可能是对方Server 的问题,例如 Mail Server 没有开机、对方的DNS 服务器死掉了等等)
0x800CCC0E 联机到服务器失败,无法与主机建立联机。可能对方主机正在维护中、或是网络联机品质不好、服务器关机、邮件服务器尚未启动等等,等一段时间再试。
0x800CCC0F 服务器结束联机(对方服务器负荷过重、网络传输壅塞易造成此现象,可以试着增加你联机逾时的等候时间试试看,或是换一联机品质较佳的 ISP)
0x800CCC10 服务器无法辨认此邮件地址
0x800CCC11 服务器无法辨认的 Mailing list
0x800CCC12 无法传送 Winsock request
0x800CCC13 无法接收 Winsock reply
0x800CCC14 无法起始 Winsock
0x800CCC15 无法开启 Windows Socket
0x800CCC16 无法辨认使用者账号,使用者账号错误
0x800CCC17 使用者中断操作
0x800CCC18 登入失败(例如:不需要安全密码认证登入,但却设了安全密码认证登入)
0x800CCC19 作业逾时
0x800CCC1A 无法以 SSL 建立联机

Winsock 错误

0x800CCC40 Network subsystem 无法使用
0x800CCC41 Windows Sockets 不支持此应用程序
0x800CCC43 Bad address.
0x800CCC44 Windows Sockets 无法加载
0x800CCC45 Operation now in progress..

SMTP 错误

0x800CCC60 不合法的回应
0x800CCC61 不明的错误代码
0x800CCC62 收到语法错误
0x800CCC63 语法参数不正确
0x800CCC64 指令不完整
0x800CCC65 不正确的指令序列
0x800CCC66 指令不完整
0x800CCC67 没有这个指令
0x800CCC68 邮件信箱被锁住或忙碌中
0x800CCC69 找不到邮件信箱
0x800CCC6A 处理要求错误
0x800CCC6B 邮件信箱不在此服务器上
0x800CCC6C 已无空间储存邮件
0x800CCC6D 已超过限制的储存容可舷?
0x800CCC6E 不合法的邮件信箱名称
0x800CCC6F Transaction error,出现这讯息,可能是服务器不接受你的邮件,请跟你的 ISP 联络。
0x800CCC78 不明的寄件者,或邮件回复(reply-to)地址不正确
0x800CCC79 收件者被服务器拒绝
(Relay Denied:最常发生于 Outlook Express 的 SMTP 设定不正确,请使用提供你联机服务的ISP公司之SMTP服务器来寄信,)
0x800CCC7A 没有指定寄件者
0x800CCC7B 没有指定收件者

POP3 错误

0x800CCC90 登入邮件服务器发生错误,检查一下你是不是有使用该服务器的权限。或者:不需要安全密码认证登入,但却设了安全密码认证登入
0x800CCC91 使用者名称错误或找不到此使用者
0x800CCC92 账号、密码错误
0x800CCC93 无法解释响应
0x800CCC94 需要指令
0x800CCC95 服务器上已无邮件
0x800CCC96 没有邮件标记为要下载
0x800CCC97 Message ID 超出范围

NNTP 错误

0x800CCCA0 新闻服务器响应错误,可能你没有拥有可使用该服务器的权限。
0x800CCCA1 读取新闻群组失败
0x800CCCA2 要求服务器邮件清单失败
0x800CCCA3 无法显示清单
0x800CCCA4 无法开启群组
0x800CCCA5 服务器无此群组
0x800CCCA6 邮件不在服务器上
0x800CCCA7 找不到件标题
0x800CCCA8 找不到邮件本文
0x800CCCA9 无法发布到服务器上
0x800CCCAA 无法开启下封邮件
0x800CCCAB 无法显示日期
0x800CCCAC 无法显示标题
0x800CCCAD 无法显示 MIME 标题
0x800CCCAE 使用者名称或密码不正确

RAS 错误 
0x800CCCC2 未安装拨号网络
0x800CCCC3 找不到拨号网络
0x800CCCC4 拨号网络错误
0x800CCCC5 Connectoid 坏或遗失
0x800CCCC6 取得拨号设定时错误

IMAP 错误 
0x800CCCD1 登入失败
0x800CCCD2 Message tagged
0x800CCCD3 Invalid response to request.
0x800CCCD4 语法错误
0x800CCCD5 不是 IMAP 服务器
0x800CCCD6 Buffer 已超过上限
0x800CCCD7 Recovery error
0x800CCCD8 数据不完整
0x800CCCD9 联机被拒
0x800CCCDA 不明的回应
0x800CCCDB User ID 已更改
0x800CCCDC User ID 指令失败
0x800CCCDD Unexpected disconnect
0x800CCCDE Invalid server state
0x800CCCDF 无法认证客户端

三、退信分析

       每一套邮件系统都有自己固定的退信格式,为了方便,我们只列举几种常见的退信通知,退信的前半部分是固定的格式,比如:尊敬的XX邮箱用户: 我们很抱歉的通知您,您的这封邮件不能投递到以下一个或多个地址中去。可能的原因有……
       其实真正的退信原因全部在退信的后半部分的“服务器返回信息为:”里!常见的有:
1. unknow user---没有这个用户,很多时候,客户在写邮件的时候,输错了对方的email地址帐号,就导致这样的问题。(当然也有个别的特例,比如一些反垃圾邮件组织封杀了邮箱的IP的时候,退信上也会显示unknow user,但是不多见)
2.not found host---找不到主机。这种情况一般是对方的域名解析有问题。如果是发给123@abc.com这个信箱,收到这样的退信,很可能就是由于DNS无法将abc.com这个域名解析到响应的IP上!
3. loops back to myself—域没有激活!激活域是开通邮箱的一部分,如果发信给没有激活域的邮箱会有这样的退信。但是这种情况相对于其他的常见退信情况还是很少见到。
4. I don't like spam—IP被对方封杀。需要说明的是目前国际上存在很多“反垃圾邮件组织”,这些组织对垃圾源的评定也不一样,有些组织甚至将全部中国电信的IP封杀了!遇到这样的情况,我们会和这个组织联系,请求其解除对我们的封杀。但是这个主动权就不在我们这里了。
5.User quota has been reached---配额(空间)已满。

以上就是本文的全部内容,希望以后在遇到SMTP服务器错误的时候,能够快速解决问题。

[!--infotagslink--]

相关文章

  • Ecshop提示Only variables should be passed by reference in错误

    在安装好ecshop软件之后我们打开首页时提示Only variables should be passed by reference in错误了,碰到这个问题是什么原因呢?下面我们就一起来看看解决办法吧。...2016-11-25
  • 414错误是什么 414错误怎么解决

    414错误是HTTP协议状态码中的一种,很多都还不知道414错误是什么,以及不知道怎么解决414错误,那么就来看看小编带来的介绍吧。 414错误是什么: HTTP 414错误,(Requ...2017-01-22
  • 409错误是什么 http 409错误怎么解决

    409错误是什么?http 409错误怎么解决呢?不少站长在遇到这个错误代码之后都一筹莫展,本次一聚教程网为大家带来了详细的说明,快来看看吧。 409错误是什么: HTTP 40...2017-01-22
  • http 405错误是什么 http 405错误怎么解决

    http 405错误是什么?http 405错误怎么解决?相信很多站长都在找这两个问题的答案,本次小编为大家带来了详细的教程,快来看看吧。 405错误是什么: HTTP 405错误是H...2017-01-22
  • 401错误码代表什么 401错误解决办法

    401是HTTP状态码的一种,属于“请示错误”,表示请求可能出错,已妨碍了服务器对请求的处理。具体的401错误是指:未授权,请求要求进行身份验证。登录后,服务器可能会返回对页面...2017-01-22
  • http 402错误是什么 http 402简介

    http 402错误是什么?402错误较为少见,一般不轻易出现,下面小编就来告诉大家402错误是什么吧。 HTTP 402错误是HTTP状态码的一种,表示“要求付费”; 所求的...2017-01-22
  • 411错误是什么 411错误怎么解决

    411错误是HTTP协议状态码的一种,很多人都还不知道411错误是什么,本次一聚教程网将为大家进行解答,并且告诉大家411错误怎么解决。 411错误是什么: HTTP 411错误,(Lengt...2017-01-22
  • apache网站提示503错误解决办法

    Apache status 503 的原因大致有如下几种情况 : 1、 CPU 负载过高,服务器响应不过来,返回503 2、 系统连接数超限,超过MaxVhostClients的上限,返回503 3、 单IP连接数超限,超过M...2016-01-28
  • 404错误是什么 404错误怎么解决

    403错误是网站访问过程中,常见的错误提示。资源不可用,服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致,比如IIS或者apache设置了访问权限...2017-01-22
  • 403错误是什么 403错误怎么解决

    403错误是HTTP状态码的一种,属于“请示错误”,表示服务器拒绝请求。如果在搜索引擎尝试抓取您网站上的有效网页时显示此状态代码,那么,这可能是您的服务器或主机拒绝搜索...2017-01-22
  • php语言实现redis的客户端

    php语言实现redis的客户端与服务端有一些区别了因为前面介绍过服务端了这里我们来介绍客户端吧,希望文章对各位有帮助。 为了更好的了解redis协议,我们用php来实现...2016-11-25
  • 412错误是什么 412错误怎么解决

    412错误是什么?412错误怎么解决?本次一聚教程网将为大家带来详细的介绍,帮助大家全面了解412错误的意思以及解决412错误的方法。 412错误是什么: HTTP 412错误,(Precond...2017-01-22
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • 407错误是什么 407错误怎么解决

    407错误是什么?407错误怎么解决?不少站长都遇到过407错误,下面小编将告诉大家如何处理407错误。 407错误是什么: HTTP 407错误是HTTP协议状态码的一种,表示需要代...2017-01-22
  • 406错误是什么 406错误怎么解决

    HTTP 406错误是HTTP协议状态码的一种,表示无法使用请求的内容特性来响应请求的网页。一般是指客户端浏览器不接受所请求页面的 MIME 类型。 而MIME类型是在把输出...2017-01-22
  • 410错误是什么 http 410错误怎么解决

    410错误是HTTP协议状态码的一种,本次一聚教程网将为大家详细介绍HTTP 410错误是什么,以及410错误的解决办法。 410错误是什么: HTTP 410错误是HTTP协议状态码的...2017-01-22
  • HTTP 400错误是什么 HTTP 400错误怎么解决

    每当遇到http错误代码为400,代表客户端发起的请求不符合服务器对请求的某些限制,或者请求本身存在一定的错误,那么HTTP 400错误怎么解决呢?请看下文介绍。 目前400错...2017-01-22
  • PHP Fatal error: Cannot use object of type stdClass as array in错误

    下面一起来看看在php开发中碰到PHP Fatal error: Cannot use object of type stdClass as array in错误问题的解决办法吧。 普通的数组出现如下错误 代码...2016-11-25
  • PHP Curl出现403错误的解决办法

    自己用的小PHP应用,使用curl抓网页下来处理,为了穿墙方便,使用Privoxy作为代理,便于选择哪些网站使用proxy、哪些不用。但今天却遇到了奇怪的问题,访问google baidu这些网站居然都返回403错误,而访问其他的一些网站没事,如果...2014-05-31
  • C#新手常犯的错误汇总

    这篇文章主要介绍了C#新手常犯的错误汇总,对于经验丰富的C#程序员同样具有很好的参考借鉴价值,需要的朋友可以参考下...2020-06-25