如何生成触发特定 DSN 代码的邮件的报告摘要

如何生成触发特定 DSN 代码的邮件的报告摘要

我在 CENTOS 5.x 上使用 Sendmail,我希望这是一个简单的问题。 =) 我需要生成触发特定 DSN 代码的消息的报告摘要。例如:

Jan 11 07:43:34 server-example sendmail[12732]: p937blksdh3: to=<[email protected]>, delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=102537, relay=mta.recipientdomain.com. [12.34.56.78], dsn=5.7.1, stat=Service unavailable

通常,我只会 grep 获取此信息(例如:)grep -i "dsn=5.7.1" /var/log/maillog。但问题是,这只会返回上面这样的一行,并且不会告诉我消息的发件人。

理想情况下,我正在寻找一种可以执行以下操作的单行代码:

  1. 在 sendmail 邮件日志中搜索特定的 DSN。
  2. 识别电子邮件的消息 ID。 (我猜awk '{print $}'会被使用?)
  3. 返回每个消息的详细信息(可能是 grep 查找从步骤 2 中检索到的消息 ID)。

答案1

在bash中

dsn=5.7.1
$ grep $dsn /var/log/maillog | awk '{print $6}' | awk -F: '{print $1}'

返回:

p937blksdh3

在你发布的行中,我猜这就是消息 ID?

好吧,这不是一根线。那么grep对于消息详细信息来说,消息详细信息保存在哪里呢?

相关内容