加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何提高电子邮件发送和交付的可靠性?

发布时间:2020-12-14 06:01:33 所属栏目:Java 来源:网络整理
导读:当前的应用程序使用 Simple Java Mail每天发送几封电子邮件,但有些电子邮件永远不会发送给客户端. 根据应用程序服务器日志,已经有几个邮件服务器超时但这并不能解释所有丢失的电子邮件的情况.添加重试功能有助于解决超时问题,但是有没有其他方法可以提高电子
当前的应用程序使用 Simple Java Mail每天发送几封电子邮件,但有些电子邮件永远不会发送给客户端.

根据应用程序服务器日志,已经有几个邮件服务器超时但这并不能解释所有丢失的电子邮件的情况.添加重试功能有助于解决超时问题,但是有没有其他方法可以提高电子邮件的可靠性?

解决方法

SMTP的本质是它不实现事务完整性.

大约6年前,我做了一个详细的分析,为什么我当时工作的公司的邮件都失败了.我只能看到接收MTA,但这显示了MTA类型与失败率之间的非常强的相关性(当时,Novell Groupwise和远程端的Sendmail是最可靠的,MSExchange最少,qmail和中间的其他人).请注意,这是高度经验性的,可能反映了产品选择与可用技能的比较,而不是特定MTA中的固有问题 – 现在它已经过时了.此外,它不是你可以有效控制的东西.

虽然,由于您有机会在MTA之上开发和实现自己的逻辑,因此无法保证:

1)如果在离开您的MTA后邮件失败,您将收到任何退回通知

2)如果您发送带有DSN请求的消息(请参阅RFC 1891),远程系统将实际发送回DSN

您可以做的最重要的事情是提高可传递性,了解很多关于SMTP,维护自己的MTA并相应地配置它.这些天的关键问题之一是每个人都试图阻止垃圾邮件 – 每个人都有自己的方法来做到这一点.而且通常他们不会告诉你秘方酱的配方.事实上,对于贝叶斯过滤,他们甚至可能都不知道!

我想下一个停靠点(在你检查了你的SPF之后是限制性的并且已经发布,并且你没有RBL)将会看看你如何确定你的邮件是否已经交付 – 就像我说的那样,你不能依靠DSN.您不能依赖窃听电子邮件(例如,通过将其作为HTML发送出去,例如),因为大多数MUA不会加载远程内容(再次防止垃圾邮件).这样就可以保留内容服务器端并发送一个可点击链接到原始内容.但这又假设您的收件人总是想要阅读您的邮件.

C.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读