java发送邮件失败!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java发送邮件失败!相关的知识,希望对你有一定的参考价值。

今天的系统发送邮件老是失败:错误日志如下
javax.mail.MessagingException: 421 Sender is rejected

at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1481)
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1512)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1054)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:634)
at cn.du37.common.sendMail.SendMail.setNewPasswords(SendMail.java:142)
at cn.du37.health.action.HealthUserAction.findpasswd(HealthUserAction.java:449)
at cn.du37.health.action.HealthUserAction$$FastClassByCGLIB$$c0e26af9.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2A
。。。

另一个系统配置的同样的SMTP却能发送,求各位大神帮忙查一下原因。

参考技术A 检查一下你的servicehost是否正确,用户名密码是否正确。
如果编码没问题,也没错,
登陆下邮箱发送试试能不能,
也有可能如果是在公司,有些公司会屏蔽对外发送邮件
参考技术B 检查一下你的servicehost是否正确,用户名密码是否正确。
如果编码没问题,也没错,登陆下邮箱发送试试能不能,也有可能如果是在公司,有些公司会屏蔽对外发送邮件
参考技术C 421 Sender is rejected

是不是程序发了太多垃圾邮件,被服务器拒绝了。追问

可是另一个系统能发送邮件啊,配的都是同一个邮xiang地址

追答

检查下邮件内容
我有遇到过发件人与封面发件人不同服务器拒绝发送的问题,你可以参考一下。

本回答被提问者和网友采纳

邮件发送失败的原因是啥?为何总是发不出去呢?

发送失败的原因可能如下

1、网络是否正常,其他访问是否正常,对方将你设为黑名单,拒绝接收你的邮件。

2、由于长期登录,对方邮箱处于非活动状态。

3、电子邮件地址不存在或错误。

4、对方邮箱已满。

5、邮箱域名不正确。

电子邮件

电子邮件是整个网络间以至所有其他网络系统中直接面向人与人之间信息交流的系统,它的数据发送方和接收方都是人,所以极大地满足了大量存在的人与人之间的通信需求。

电子邮件指用电子手段传送信件、单据、资料等信息的通信方法。电子邮件综合了电话通信和邮政信件的特点,它传送信息的速度和电话一样快,又能像信件一样使收信者在接收端收到文字记录。

参考技术A 邮件失败原因主要包含了如下:
1、550 Mail content denied
这个是指邮件内容被拒收,这种失败的解决方案:用户更换邮件内容或者添加服务器IP白名单就可以,也可以采用Rushmail邮件群发平台来发送。

2、550 Connection denied
这个是指该服务器IP的发信频率大幅度超过比如收信服务商的限制。解决方案:需要采用不同的发送服务器来发送,也可以采用Rushmail邮件群发平台来发送,平台底层发送机制是多服务器,多IP循环发送,也支持多通道,多域名,多账号循环投递,从技术上的角度可以保证短时间内批量发送邮件到达率。

3、550 5.5.0 Invalid EHLO/HELO domain
这个错误提示指的是收信邮箱不存在。解决方案:需要用户跟对方确认邮箱的真实性。
4、status=deferred
用户把发送邮件当作垃圾邮件过滤掉了 解决方案:修改邮件内容也可以采用Rushamail邮件群发平台里面的邮件垃圾评分比例的功能,判断一下邮件内容进垃圾箱的概率,提前对内容做好更新,可以大大降低进垃圾箱的概率。

5、status=bounced (host mx54.dns.com.cn[220.181.130.176]said: 550 Does not like recipient,your mail is rejected! (in reply to end of DATA command)); sender non-delivery notification: F20F2DD80FC;removed
这个是指对方某一台收件服务器当时正处在繁忙之中或者我们的服务器和对方链接并不是很顺畅。解决方案:有可能是暂时的情况,用别的地址测试一下,看看是否被退信,或者过一段时间再发送一下,使用Rushmail邮件发送平台底层有自动重复投递机制,可以避免因为这个原因导致邮件发送失败,也可以帮助企业提高工作效率以及送达率。
6.status=bounced
sender non-delivery notification: 9CC7FDD8084; removed ;status=bounced 550 User not found; sender non-delivery notification: 8FD7CA00013A; removed
这个是指邮箱地址写错或者是邮件地址不存在。解决方式:核对地址后重新发送

7、status=bounced 553 5.7.3 CONTENT
Recipient address rejected: User unknown in local recipient table
这种的话:1)内容被拒绝,可能是收件人对所接收的邮件进行了设置,内容中含有特定词汇等会被拒绝 ,2)收件人地址被拒绝。解决方案:修改邮件内容或者采用Rushmail邮件群发平台来发送,Rushmail会提供专门的售后客服一对一的指导,给到用户建议,包括模块的制作,关键词避免,发送周期,发送频率等,可以提高邮件的发送效果。
8、sender non-delivery notification: C6A3BDD8078; removed
这个是指:邮件过大,超出对方邮箱邮件接收范围。解决方案:对方换账号,重新发送。

以上是邮件群发时会经常遇到的邮件发送失败情况,如您有不清楚的,可以联系Rushmail邮件发送平台客服,可以给您详细解答。
参考技术B 一般主要原因要么是你的收件人地址有误,或者看是不是服务器故障,再者的话就是文件内存过大。我们公司这边用的顺邮文件传输系统,没有出现过你说的这个问题,发送个几百G的文件也是速度很快的。你可以先排查下,如果是内存受限的话,真的建议你们可以换个邮件系统了。本回答被提问者采纳 参考技术C 你好。邮件发送失败的原因是。对方的邮箱地址,或者是邮箱账号,一定要书写正确。如果对方使用拼音字母作为邮箱地址。你一定要区分大小写。只要你的邮箱地址填写的正确。任何邮箱的邮件都可以发送成功的。你试试吧。 参考技术D 保持你的网络正常信号好,却保联网。你发的邮件人地址要正确。

以上是关于java发送邮件失败!的主要内容,如果未能解决你的问题,请参考以下文章

java Mail 发送外部邮件失败,求解,

javamail的邮件发送有验证失败错误

Jenkins 发送邮件失败

jenkins 发送邮件失败

关于java使用网易服务器smtp.163.com发送邮件,连接失败的问题

java email 在阿里云服务器发送邮件失败的解决方法