Postfix 访问和子域名?

Postfix 访问和子域名?

我正尝试将/etc/postfix/access我想要阻止的某些已知垃圾邮件发送者的域名包含进去(请不要讨论这是否有用……)。

根据文档,它应该丢弃来自垃圾邮件域的所有传入邮件,并在访问文件中输入以下条目:

.spam.domain.de   DISCARD Spam rule domain block

相关配置设置(smtpd_access_maps)已启用:

parent_domain_matches_subdomains = debug_peer_list,fast_flush_domains,mynetworks,permit_mx_backup_networks,qmqpd_authorized_clients,relay_domains,smtpd_access_maps

并且访问文件也配置好了:

smtpd_recipient_restrictions =
        permit_sasl_authenticated,
[...]
        check_sender_access hash:/etc/postfix/access,

因此,我期望 Postfix 丢弃从某个域收到的所有邮件news.spam.domain.deletter.spam.domain.de甚至spam.domain.de

但确实如此不是。所以我尝试用 postmap 进行调试:

root@mail:~# postmap access
root@mail:~# postmap -q news.spam.domain.de access; echo $?
1
root@mail:~# postmap -q spam.domain.de access; echo $?
1
root@mail:~# postmap -q .spam.domain.de access; echo $?
DISCARD Spam rule domain block
0

看起来它只匹配精确的细绳。

有人知道我这里错在哪里吗?

答案1

-q标志仅检查以下字符串是否逐字存在于文件中。

https://linux.die.net/man/1/postmap

-q 键

在指定的映射中搜索键并将找到的第一个值写入标准输出流。找到请求的信息时,退出状态为零。

它实际上并没有检查您输入的子域是否被允许向您发送电子邮件。

以下这句话出自/etc/postfix/access

gmail.com       OK

这是输出postmap -q /etc/postfix/access; echo $?

[root]# postmap -q [email protected] /etc/postfix/access; echo $?
1
[root]# postmap -q gmail.com /etc/postfix/access; echo $?
OK
0

相关内容