如何屏蔽垃圾邮件

我的网站收到了发往不存在地址的垃圾邮件,这很烦人。邮件当然会失败,但它会使日志变得混乱。由于我没有源 IP 地址,有什么方法可以按源地址阻止电子邮件吗?我知道它们一直在变化,但我在寻找建议。我的 Discourse 是自托管的。

这个主题可能对您有帮助,如果您还没有看过的话:

您可以使用此命令从日志中过滤掉大多数垃圾邮件发送者的 IP 地址(这不是严格的 RFC 要求,但几乎所有垃圾邮件中继都没有有效的 PTR)

./launcher logs mail-receiver | grep -v 'unknown' | grep -E 'NOQUEUE'

如果您收到来自看似合法服务器的垃圾邮件,仍然很难使用电子邮件域阻止发件人,因为它很容易被伪造,所以您最好的办法是找到发送 SMTP 服务器的 IP 地址并阻止它

./launcher logs mail-receiver | grep -E '[0-9A-F]{10,}:.+(from=\u003c[^\u003e]|client=)'

第一对结果将为您提供 SMTP 服务器 IP,第二个结果将为您提供发件人地址。

您可以使用以下链接中描述的说明来配置 mail-receiver:

我通过这种方法几乎消除了所有的垃圾邮件。

这听起来像是一个小小的行政不便——与阻止真人为您的论坛做出实际贡献的不完美封锁的影响相比。就我个人而言,我不会使用任何形式的封锁,因为我永远不想丢失有效输入,即使代价是获得一些无效输入。