![通过发件人 IP 地址过滤后队列邮件的最快方法是什么?](https://linux22.com/image/1531305/%E9%80%9A%E8%BF%87%E5%8F%91%E4%BB%B6%E4%BA%BA%20IP%20%E5%9C%B0%E5%9D%80%E8%BF%87%E6%BB%A4%E5%90%8E%E9%98%9F%E5%88%97%E9%82%AE%E4%BB%B6%E7%9A%84%E6%9C%80%E5%BF%AB%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我维护着一个有数百名客户使用的邮件服务器。有时,客户会感染病毒并开始发送大量垃圾邮件。我之所以注意到这一点,主要是因为它使邮件队列中充满了数万封待处理邮件,而不是几百封。
查找垃圾邮件发送者的 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