我设置了 sender_bcc_maps 并使用后缀,以便将外发邮件密送至发件人的地址。我的配置或多或少:
主文件
sender_bcc_maps = regexp:/etc/postfix/regexp_sender_bcc
regexp_sender_bcc
/^([^@]+)@[a-zA-Z0-9_]+\.[a-zA-Z0-9_]+$/ [email protected]
这很好用。[email protected]
现在我有一个我想从这个配置中排除的电子邮件地址。
想法1:我首先尝试添加一行路由到一个不存在的邮箱
/^nobody.*$/ [email protected]
可以预见的是,这会导致尝试密送该地址并退回,因为它不存在。
想法2:接下来我尝试简单地将目标更改为空字符串:
/^nobody.*$/
这会生成一个警告并完全删除外发邮件:
warning: sender_bcc_maps lookup of [email protected] returns an empty string result
warning: sender_bcc_maps should return NO RESULT in case of NOT FOUND
warning: sender_bcc_maps map lookup problem -- message not accepted, try again later
想法 3:然后我尝试将此邮件路由到本地用户:
/^nobody.*$/ nobody@localhost
这在一定程度上起到了作用,但所有这些消息仍被传递到本地邮件系统。
我想做其中的任何一个 - 更喜欢前者:
- 配置 sender_bcc_maps 以完全忽略特定发件人的地址
- 配置 postfix 以完全丢弃发给特定用户的邮件
配置 sender_bcc_maps 以完全忽略特定发件人的地址:
(归功于 Viktor Dukhovni,他通过postfix-users回答了这部分问题)
Postfix正则表达式表能够通过使用
if !/pattern/flags ... endif
. 在我的情况下,以下完成了我所追求的:模式的域匹配部分也有一些小的改进,因为正如所指出的,正则表达式默认情况下不区分大小写。
配置 postfix 以完全丢弃发给特定用户的邮件:
以下内容对我有用,可以静默丢弃指定用户的邮件。服务器正在运行 Ubuntu 20.04.3 LTS,但这应该适用于几乎任何 Debian 风格:
在
/etc/postfix/main.cf
:在
/etc/postfix/transport
:然后在 shell 中运行: