菜根乱谭

发送邮件常出现的错误情况

今天用javamail做发送邮件程序,使用的是163的邮箱作为代理,但是无法正常发送邮件。报com.sun.mail.smtp.SMTPSenderFailedException: 550 5.8.1 Local user only.的错误的原因是from指定的邮箱不在163的邮箱列表中。163等邮件服务器有这样的限制,from邮箱必须是163存在的邮箱,而且登录账户的邮箱和from指定的邮箱必须是同一个邮箱。


以下是从网上找的一些常见的错误情况和解决方法:

这是因为某些原因,服务器不能或者拒绝为用户发送邮件。通过返回的错误编号以及错误信息,可以进行判断,并做出相应的处理来解决。通常有以下一些比较常见的情况: 
  1、 服务器返回“535 Error: authentication failed”。 
  SMTP身份验证出错了。现在大多数的邮箱提供的发送邮件服务器(SMTP)都需要身份验证。需要在Foxmail【帐户属性】对话框的【邮件服务器】属性页中,选中【SMTP邮件服务器需要身份验证】,并在【POP3邮箱账号】和【密码】下填写正确的邮箱账号和密码。 
如果帐户属性中填写的SMTP与POP3服务器不是由同一个邮箱提供上提供的,请单击属性页中【设置】按钮,在验证信息对话框中填写与SMTP对应的验证信息。 
  注意:个别邮箱需要用完整的邮件地址作为验证信息,需要在【POP3邮箱账号】一栏填写完整的E-mail地址。 

2、 服务器返回“553 Error: authentication is required”。 
  这是因为客户端软件没有使用ESMTP方式发送邮件,只要选中帐户属性中的【SMTP邮件服务器需要身份验证】选项即可。即使没有选中【SMTP邮件服务器需要身份验证】选项,发送邮件时,Foxmail也会自动尝试以ESMTP方式发送,因此这种发送失败的情况在Foxmail中已经很少出现了。 

3、 服务器返回“550: Invalid User”、“550:local user only”或者“551 delivery not allowed to non-local recipient”。 
  这是由于服务器对发件人地址进行检查,对于发件人地址不是由本服务器提供的邮件,不予已发送。 
  解决的办法是:打开Foxmail【帐户属 性】中对话框,在【个人信息】的【电子邮件地址】中填写SMTP服务器所属的邮箱系统提供的邮件地址。 

4、 服务器返回“501 syntax.helo hostname”或者“501 Invalid domain name”。 
  这时应该检查您的计算机名称是否含有中文或者非ASCII字符,由于某些SMTP服务器不允许。因此,需要把计算机名称改为只含有英文字母或ASCII字符。  

评论