当前的应用程序使用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。因为大多数MUA都不会加载远程内容(同样可以防止垃圾邮件),所以您不能依靠对电子邮件进行错误检查(例如,通过使用HTML将其发送出去)。剩下的选择就是将内容保留在服务器端,并发送指向原始内容的可点击链接。但这再次假设您的收件人总是想阅读您的邮件。
C。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句