Rspamd:黑名单无法持续发挥作用

Rspamd:黑名单无法持续发挥作用

RSPAMD 3.5.2

使用多地图模块我通过黑名单拒绝某些电子邮件地址:

多重映射配置文件

blacklisted_addresses {
    description = "Blacklisted addresses";
    type = "from";
    prefilter = true;
    filter = "email";
    map = "/${LOCAL_CONFDIR}/local.d/blocked_addresses.map";
    action = "reject";
    symbol = "BLACKLISTED_ADDRESS";
    regexp = "false";
}

blocked_addresses.map有一个电子邮件地址列表,每行一个。

我把自己的电子邮件地址放进去测试,一切正常。我可以看到黑名单正在运行,并且我收到了来自邮件服务器的拒绝邮件:

错误:

554 5.7.1 Matched map: BLACKLISTED_ADDRESS

但是其他电子邮件地址却可以通行。下面是一个例子,我试图拒绝来自亚马逊的营销电子邮件。

[电子邮件保护]

有人能解释一下这种行为吗?我该如何进一步调试?

答案1

from 地图类型匹配信封来自而不是From:消息头(当两者都存在时)。

相当典型的是,邮件列表消息使用唯一生成的 SMTP 信封地址来有效处理退回和传递错误。

然后“信封来自” 可能看起来像而不是在邮件头中找到的地址。from=<[email protected]>[email protected]


就像蜗牛邮件信件,SMTP电子邮件有两组不同的地址信息:

  • 信封标题(如信封外面印刷的地址,邮局会读取并使用它们将邮件投递到您的邮箱),SMTP 服务器会使用这些标题来路由和投递电子邮件。这些标题与 SMTP事务中使用的命令字RCPT TO:相对应。MAIL FROM:

  • “普通”报头,是邮件消息的一部分,只能由用户在其邮件客户端/网络邮件中读取和解释。这些报头类似于信封内实体信件开头的称呼所附的地址,同样对正确传递邮件没有任何作用。
    这些报头是 SMTP 事务中数据的一部分。

  • 这两个不同标头中的地址可能不同。

从历史上看,MTA 如何存储邮件中的信封数据并没有统一的标准,甚至根本没有。因此邮件客户端只会显示正常的邮件头。

通常您需要查看“所有标题”、“原始消息”、“消息源/属性”或类似内容,以查看 MTA 是否以某种方式记录了 MAIL FROM: 和 RCPT TO:。

您可能会看到Return-Path: <sender-address> Received: ... for <rcpt-address>X-Original-To: <rcpt-address>或其他完全不同的东西。或者,MTA 通常会存储传递日志文件中使用的信封头。


您可能需要进行测试,但“标题”映射和From:标题上的过滤可能更适合您:

blacklisted_addresses {
    description = "Blacklisted addresses";
    type = "header";
    header = "From"; 
    filter = "email";
...

相关内容