我维护着一个有数百名客户使用的邮件服务器。有时,客户会感染病毒并开始发送大量垃圾邮件。我之所以注意到这一点,主要是因为它使邮件队列中充满了数万封待处理邮件,而不是几百封。
查找垃圾邮件发送者的 IP 地址并将其阻止很简单,但我的邮件队列中仍然有数以万计的垃圾邮件,通常具有不同的发件人地址。
当我使用它打印帖子队列时,postqueue -p
它会显示邮件 ID、发件人电子邮件地址和所有收件人。它不显示发件人的 IP。
我可以通过运行以下命令找到邮件的发件人 IP:
postcat -q ABCDEF1234 | egrep "\\bclient_address="
其中“ABCDEF1234”是邮件ID。
我编写了一个工具,列出所有邮件 ID,然后循环运行postcat -q
每个邮件 ID,并过滤掉与输入 ID 不匹配的邮件 ID。
这可行,但非常慢过滤包含 441 封电子邮件的帖子队列需要 7-8 秒。如果我尝试过滤包含数万封电子邮件的垃圾邮件帖子队列,此工具将毫无用处。
我希望有一些我不知道的工具或标志可以让我按发件人 IP 地址进行过滤。
我正在运行 Postfix 2.10