我们的网络应用程序发送电子邮件。我们有大量的用户,我们得到大量的反弹。例如,用户的变化公司及其公司电子邮件不再有效。

找到弹,我分析SMTP日志文件记录的分析器。日志来自微软SMTP server。

一些反弹是巨大的,就像 550+#5.1.0+Address+rejected+user@domain.com.那里是 user@domain.com 在反弹。

但是,一些没有电子邮件中的错误信息,就像 550+No+such+recipient.

我已经创建了简单的红宝石脚本,分析日志(使用登录parser)找到邮件而引起的东西喜欢 550+No+such+recipient.

我只是惊讶我不能找到一种工具,做了。我已经找到的工具,如监控工具数据库,网站等和Splunk日志分析,但他们看起来喜欢矫枉过正,对于这样简单的任务。

有人知道一种工具,将分析SMTP日志,发现弹和电子邮件,导致他们?

有帮助吗?

解决方案

这个文章正是您所需要的。它基于伟大的工具日志解析器

  

日志解析器功能强大,功能多样   提供通用查询的工具   访问基于文本的数据,如日志   文件,XML文件和CSV文件,如   以及关键数据来源   的Windows®操作系统如   事件日志,注册表,文件   系统和Active Directory®。您   告诉Log Parser你有什么信息   需要以及如何处理它。   您的查询结果可以是   基于文本的输出自定义格式,   或者他们可以坚持到更多   专业目标,如SQL,SYSLOG或   图表。大多数软件都是为了   完成数量有限的   具体任务。 Log Parser是   不同......它的方式数量   使用仅限于需要   和用户的想象力。该   world是您使用Log的数据库   解析器。

其他提示

据我所知,日志文件分析实际上只对检测SMTP会话级别拒绝的邮件有用。在远程MTA接收到传递消息但随后无法传递之后发生的跳出怎么办?

我们使用以下设置在传送到远程MTA后检测并分类所有跳出。

  1. 所有外发邮件都会获得唯一的返回路径标题,当解码时,标识收件人电子邮件地址和特定邮件。

  2. Apache James 服务器,它接收返回到返回路径地址的邮件。

  3. 用Java开发并在Apache James中执行解码地址的自定义mailet将电子邮件文本发送到 boogietools弹跳工作室用于弹跳类型分类,然后将结果保存到我们的数据库中。

  4. 非常,非常好。我们能够检测到永久性硬弹跳和瞬态软弹跳,这些弹跳进一步分为非常精细的反弹类型,例如垃圾邮件拒绝,不在办公室的回复等。

你不想要分析的记录,试图找出反弹。你将有假阴性和误报,如果你看看记录。

反弹可能产生的下游服务为你提供。他们看起来像成功的运送在发送服务器记录。

天真的模式匹配的反弹,在进入日志(从空的发送人,以你的一个这项方案是促使各-ed地址)将不准确。有几个原因:

  • 会有延迟的警告混在实际故障时的反弹。
  • 大多数的办事处和类似的自动回复使用的空发送人,以防止对机器人的综合症。
  • 同样,挑战的应对系统(如*吐*boxbe.com)倾向于使用空发送者。
  • 你的这项方案是促使各-ed发件人的地址,如果他们是持久的每个收件人,将得到收获的垃圾邮件发送者和回作为垃圾邮件的目标或反向散射。

因此,令人遗憾的是,只有可靠的方式来做到这一点是检查弹的消息本身。他们大多将有一个"报告/交货地"MIME的一部分,作为每RFC1894,并且取决于你的选择的语言可能有图书馆或模块,以帮助与其他反弹格式。我唯一拥有直接经验是Perl邮件::DeliveryStatus::BounceParser模块,该模块的工作不够好。

我喜欢logParser。当我需要解析非常具体或自定义或使用正则表达式的东西时,我使用biterScripting。它们实际上有一些我用来开始的示例脚本。一个是 http://www.biterscripting.com/Download/SS_WebLogParser.txt

我在这篇文章中建立了一个反弹计数器程序,但稍后才发现这种方法实际上不适用于高容量发件人,因为SMTP日志不是按顺序排列的。在我的博客文章中有更多关于它的信息: SMTP日志中的电子邮件退回检测及其为什么不可能

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top