SMTP客户端未通过身份验证等多种错误解决方案分享
最近在做邮件发送接口把遇到的问题和解决方法告诉大家 希望对了解邮件的人有所帮助
原程序部分代码如下
//设置邮件信息发件人地址、收件人地址、标题、主题 MailMessagemail=newMailMessage("xxxxxxx@sina.com","zzzzzzz@sina.com","标题","主题"); //设置邮件主题格式 mail.BodyEncoding=Encoding.UTF8; //设置邮件主体格式是否为html格式 mail.IsBodyHtml=false; //验证邮箱用户名密码 NetworkCredentialwork=newNetworkCredential("xxxxxxx","pwd"); //验证用户名密码 client.Credentials=work; //设置邮箱smtp服务器端口 SmtpClientclient=newSmtpClient("smtp.sina.com"); //是否请求一起发送 client.UseDefaultCredentials=false; //设置邮件发送格式 client.DeliveryMethod=SmtpDeliveryMethod.Network; //安全连接设置 client.EnableSsl=false; client.Send(mail);
错误一:“/”应用程序中的服务器错误。
SMTP服务器要求安全连接或客户端未通过身份验证。服务器响应为:5.7.1Clientwasnotauthenticated
说明:执行当前Web请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:System.Net.Mail.SmtpException:SMTP服务器要求安全连接或客户端未通过身份验证。服务器响应为:5.7.1Clientwasnotauthenticated
解决方法 :
//设置邮箱smtp服务器端口 SmtpClientclient=newSmtpClient("smtp.sina.com",587);
解决说明:我加上了端口号,587属于发送邮件端口 一般出现此错误会出现在你设置的163的接受者时发生 QQ的没有问题!
错误二:“/”应用程序中的服务器错误。
服务器不支持安全连接。
说明:执行当前Web请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:System.Net.Mail.SmtpException:服务器不支持安全连接。 我将//安全连接设置 client.EnableSsl=True;后发生的错误
解决方法:方法一设置成“client.EnableSsl=false”或去掉这句代码
方法二开启安全连接服务
错误三:SMTP服务器要求安全连接或客户端未通过身份验证。服务器响应为:Authenticationrequired
堆栈跟踪: [SmtpException:SMTP服务器要求安全连接或客户端未通过身份验证。服务器响应为:Authenticationrequired]
解决方法:
client.EnableSsl=false;改为client.EnableSsl=true; 但是这样该后可能会出现“错误二”的提示,所以要解决
这个的话首先保证服务器是支持安全连接的
错误四:
SMTP服务器要求安全连接或客户端未通过身份验证。服务器响应为: 5.7.0MustissueaSTARTTLScommandfirst.9sm5225813ywf.35
解决方法:sina要求用ssl连接可以改一下true
万能解决方法:
1、POP3和SMTP服务器要填正确
2、服务器的端口要正确
3、我的服务器要求身份认证
4、发送邮件的用户名和密码要正确
//设置邮箱smtp服务器端口
SmtpClientclient=newSmtpClient("smtp.sina.com",587);就可以了
163的最固执了!需要注意点QQ最好过!呵呵
有些时候邮件被退信的原因 提供以下解决方法:
一、FOXMAIL发送邮件常见出错代码:
问题:theserversays:550relayingmailto<>isnotallowed
问题:Theserversays:550<>...relayingdenied
问题:theserversays:5505.7.1relayingnotpermitted:
解答:使用某些Smtp服务器时,限制了收件人的地址,只能换一个Smtp服务器。
问题:Theserversays:550<>:localuseronly
问题:Theserversays:550<>:InvalidUser
问题:Theserversays:550Invalidrecipient
解答:使用163.net,163.com,yeah.net和netease.com之类的Smtp服务器时,只能用自身的信箱发信,所以要在OutlookExpress的“帐户属性”中的“个人信息”里面填写正确的邮件地址。
问题:theserversays:551deliverynotallowedtonon-localrecipient
问题:Theserversays:553Relayrestriction.
问题:Theserversays:553From<>,messageblocked.
问题:Theserversays:553sorry,youarenotallowtousethisSMTPtorelayyoureami
问题:Theserversays:553sorry,thatdomainisn&apostinmylistofallowedrcpthosts
解答:使用21cn.com,china.com,371.net,sina.com等大多数信箱的smtp服务器时,只能用自身的信箱发信,所以要在OutlookExpress的“帐户属性”中的“个人信息”里面填写正确的邮件地址。
问题:Theserversays:505clientwasnotauthenticated
问题:Theserversays:553authenticationisrequiredtosendmailas<>
解答:使用263.net和sohu.com的Smtp服务器时,不但要用自身的邮箱发信,而且要加入身份验证,所以即要在“个人信息”中填写正确邮箱地址,又要选中“SMTP服务器需要认证”。
问题:Theserversays:535Error:authenticatinfailed
问题:Theserversays:535Authenticationunsuccessful
问题:Theserversays:452Insufficientsystemstorage
解答:在使用Esmtp认证的过程中出错,检查一下Esmtp设置,多试几次。
问题:Theserversays:553<>...domainnamerequired
问题:Theserversays:550Unabletorelayfor...
解答:多出现在用Wingate代理服务器发送邮件时。虽然在Wingate中“POP3邮箱帐号”要使用“用户名#POP3地址”的格式,但在“帐户属性”中的“个人信息”中还是要填写一般的格式。
问题:Theserversays:553mailboxnamenotallowed
解答:收件人邮箱地址不允许,需检查收件人地址是否正确。
问题:theserversays:553sorry,yourenvelopsenderisinmybadmailfromlist
解答:服务器限制了收件人的地址,只能换一个smtp服务器发信。
问题:theserversays:554Transactionfailed
问题:Theserversays:451Requestedactionaborted,errno=28
解答:传输失败,检查网络问题。
问题:theserversays:503error:needmailcommand
问题:Theserversays:503needmailbeforeRCPT.
问题:Theserversays:503Badsequenceofcommands
解答:消息命令顺序出错,一般出现在其他错误之后,先检查之前出现的错误提示。
问题:TheServersays:501syntax.helohostname
问题:Theserversays:501Invaliddomainname
问题:Theserversays:502unimplementedcommand
问题:theserversays:5035.0.0politepeoplesayHELOfirst
问题:Theserversays:533relayrestriction
问题:Theserversays:544<>:Recipientaddressrejected:Relayaccessdenied
解答:传输中的语法错误,原因不明。
二、OUTLOOK发送邮件常见出错代码:
0x800C013E可能是Folders.dbx档案属性错误或损坏.
0x800CCC00身份验证(Authentication)未载入
0x800CCC01认证(Certificate)内容错误
0x800CCC02认证日期错误
0x800CCC03使用者已联机
0x800CCC05未联机到服务器
0x800CCC0A邮线下载未完成
0x800CCC0B服务器忙碌中
0x800CCC0D找不到主机(检查你的SMTP服务器是不是设错,亦可能是对方Server的问题,例如MailServer没有开机、对方的DNS服务器死掉了等等)
0x800CCC0E联机到服务器失败,无法与主机建立联机。可能对方主机正在维护中、或是网络联机品质不好、服务器关机、邮件服务器尚未启动等等,等一段时间再试。
0x800CCC0F服务器结束联机(对方服务器负荷过重、网络传输壅塞易造成此现象,可以试着增加你联机逾时的等候时间试试看,或是换一联机品质较佳的ISP)
0x800CCC10服务器无法辨认此邮件地址
0x800CCC11服务器无法辨认的Mailinglist
0x800CCC12无法传送Winsockrequest
0x800CCC13无法接收Winsockreply
0x800CCC14无法起始Winsock
0x800CCC15无法开启WindowsSocket
0x800CCC16无法辨认使用者账号,使用者账号错误
0x800CCC17使用者中断操作
0x800CCC18登入失败(例如:不需要安全密码认证登入,但却设了安全密码认证登入)
0x800CCC19作业逾时
0x800CCC1A无法以SSL建立联机
Winsock错误
0x800CCC40Networksubsystem无法使用
0x800CCC41WindowsSockets不支持此应用程序
0x800CCC43Badaddress.
0x800CCC44WindowsSockets无法加载
0x800CCC45Operationnowinprogress..
SMTP错误
0x800CCC60不合法的回应
0x800CCC61不明的错误代码
0x800CCC62收到语法错误
0x800CCC63语法参数不正确
0x800CCC64指令不完整
0x800CCC65不正确的指令序列
0x800CCC66指令不完整
0x800CCC67没有这个指令
0x800CCC68邮件信箱被锁住或忙碌中
0x800CCC69找不到邮件信箱
0x800CCC6A处理要求错误
0x800CCC6B邮件信箱不在此服务器上
0x800CCC6C已无空间储存邮件
0x800CCC6D已超过限制的储存容可舷?
0x800CCC6E不合法的邮件信箱名称
0x800CCC6FTransactionerror,出现这讯息,可能是服务器不接受你的邮件,请跟你的ISP联络。
0x800CCC78不明的寄件者,或邮件回复(reply-to)地址不正确
0x800CCC79收件者被服务器拒绝
(RelayDenied:最常发生于OutlookExpress的SMTP设定不正确,请使用提供你联机服务的ISP公司之SMTP服务器来寄信,)
0x800CCC7A没有指定寄件者
0x800CCC7B没有指定收件者
POP3错误
0x800CCC90登入邮件服务器发生错误,检查一下你是不是有使用该服务器的权限。或者:不需要安全密码认证登入,但却设了安全密码认证登入
0x800CCC91使用者名称错误或找不到此使用者
0x800CCC92账号、密码错误
0x800CCC93无法解释响应
0x800CCC94需要指令
0x800CCC95服务器上已无邮件
0x800CCC96没有邮件标记为要下载
0x800CCC97MessageID超出范围
NNTP错误
0x800CCCA0新闻服务器响应错误,可能你没有拥有可使用该服务器的权限。
0x800CCCA1读取新闻群组失败
0x800CCCA2要求服务器邮件清单失败
0x800CCCA3无法显示清单
0x800CCCA4无法开启群组
0x800CCCA5服务器无此群组
0x800CCCA6邮件不在服务器上
0x800CCCA7找不到件标题
0x800CCCA8找不到邮件本文
0x800CCCA9无法发布到服务器上
0x800CCCAA无法开启下封邮件
0x800CCCAB无法显示日期
0x800CCCAC无法显示标题
0x800CCCAD无法显示MIME标题
0x800CCCAE使用者名称或密码不正确
RAS错误
0x800CCCC2未安装拨号网络
0x800CCCC3找不到拨号网络
0x800CCCC4拨号网络错误
0x800CCCC5Connectoid坏或遗失
0x800CCCC6取得拨号设定时错误
IMAP错误
0x800CCCD1登入失败
0x800CCCD2Messagetagged
0x800CCCD3Invalidresponsetorequest.
0x800CCCD4语法错误
0x800CCCD5不是IMAP服务器
0x800CCCD6Buffer已超过上限
0x800CCCD7Recoveryerror
0x800CCCD8数据不完整
0x800CCCD9联机被拒
0x800CCCDA不明的回应
0x800CCCDBUserID已更改
0x800CCCDCUserID指令失败
0x800CCCDDUnexpecteddisconnect
0x800CCCDEInvalidserverstate
0x800CCCDF无法认证客户端
三、退信分析
每一套邮件系统都有自己固定的退信格式,为了方便,我们只列举几种常见的退信通知,退信的前半部分是固定的格式,比如:尊敬的XX邮箱用户:我们很抱歉的通知您,您的这封邮件不能投递到以下一个或多个地址中去。可能的原因有……
其实真正的退信原因全部在退信的后半部分的“服务器返回信息为:”里!常见的有:
1.unknowuser---没有这个用户,很多时候,客户在写邮件的时候,输错了对方的email地址帐号,就导致这样的问题。(当然也有个别的特例,比如一些反垃圾邮件组织封杀了邮箱的IP的时候,退信上也会显示unknowuser,但是不多见)
2.notfoundhost---找不到主机。这种情况一般是对方的域名解析有问题。如果是发给123@abc.com这个信箱,收到这样的退信,很可能就是由于DNS无法将abc.com这个域名解析到响应的IP上!
3.loopsbacktomyself—域没有激活!激活域是开通邮箱的一部分,如果发信给没有激活域的邮箱会有这样的退信。但是这种情况相对于其他的常见退信情况还是很少见到。
4.Idon'tlikespam—IP被对方封杀。需要说明的是目前国际上存在很多“反垃圾邮件组织”,这些组织对垃圾源的评定也不一样,有些组织甚至将全部中国电信的IP封杀了!遇到这样的情况,我们会和这个组织联系,请求其解除对我们的封杀。但是这个主动权就不在我们这里了。
5.Userquotahasbeenreached---配额(空间)已满。
以上就是本文的全部内容,希望以后在遇到SMTP服务器错误的时候,能够快速解决问题。