如何阅读Sendmail中的电子邮件内容

我在澳大利亚的ISP工作。 最近一个用户帐户已经被压缩,正在发送垃圾邮件。 如何阅读mailq中的邮件内容来查找已被authentication的已authentication的用户。 我知道如何在Postfix中做到这一点,但没有find一种方法在sendmail中做到这一点。 运行CentOS。

先谢谢了。 挣扎的networking运营商。

Sendmail将邮件保存在队列中以保证安全,然后再尝试传递邮件。 操纵队列的命令是mailq

通过devise,队列是非常短暂的,通常在这种情况下,您应该依赖您的日志文件,这些日志文件还包含有关已经传递的消息的信息,并且不再可以在队列中find,而不是扫描几条/留在队列中。

(如果你的maillog目前不包含你需要的信息, 这个答案可能是有用的,以备将来参考)

queu中的每条消息都存储在目录/ var / spool / clientmqueue和mqueue中,作为如下命名的几个文件:“type和status”的第一个字母,第二个字母是“f”,rest是sendmail队列ID你在日志和mailq输出中看到。

第一个字母通常是以下之一:

d邮件的正文

当消息正常时,使用路由信息和头部信息信封

当由于某种原因放弃信息时, Q重命名“q”文件

h当消息被保存时,重命名“q”文件(由milter隔离)

临时文件

x交付尝试的成绩单

如果您正在查找身份validation信息: qf文件被构build为一系列行,每个行以一个目的代码字母开始,其中A包含由"MAIL FROM:"命令的AUTH=参数给出的信息或$f@$j如果sendmail被直接调用, $f@$j
还有一些关于qf文件中其他字段的组成部分。

因此, grep ^A /var/spool/mqueu/qf*将列出经过身份validation的发件人。