Answers:
transport(5)映射用于重新定义后缀如何路由电子邮件。
将以下行添加到/etc/postfix/main.cf:
transport_maps = hash:/etc/postfix/transport
添加具有以下内容的新文件/ etc / postfix / transport:
.example.com :
example.com :
* discard:
用example.com
您的邮件服务器仍应将邮件发送到的域替换。如果您不关心子域,请删除第一行。
使用postmap(1)编辑文件后,不要忘记对文件进行哈希处理并重新加载后缀,以使更改生效:
# postmap /etc/postfix/transport && postfix reload
您可以轻松地通过标准smtpd_recipient_restrictions限制接收者,或者更准确地说是check_recipient_access。
只需创建一个具有以下内容的access(5)表/etc/postfix/access
(example.com是您要允许向其发送邮件的域):
example.com OK
您还可以只允许一些特定的地址:
user1@example.com OK
user2@example.com OK
使用postmap(1)编辑文件后,不要忘记对文件进行哈希处理:
# postmap /etc/postfix/access
现在在main.cf中设置以下收件人限制:
smtpd_recipient_restrictions =
hash:/etc/postfix/access
reject
并重新加载Postfix:
postfix reload
之后,测试它是否有效。
因此,如果有人像我一样偶然发现此问题:答案的确是header_checks,它的工作方式如下:
将以下行添加到/etc/postfix/main.cf
:
header_checks = regexp:/etc/postfix/header_checks
添加/etc/postfix/header_checks
具有以下内容的新文件:
/^To:.*@allowed-domain.com/ DUNNO
/^To:.*@/ REDIRECT redirect@example.com
用allowed-domain.com
您的邮件服务器仍应将邮件发送到的域替换。用redirect@example.com
电子邮件地址替换所有其他电子邮件应重定向到。
如果需要允许多个域,则第一行应如下所示:
/^To:.*@(allowed-domain.com|another-domain.com)/ DUNNO
除了重定向之外,您还可以简单地丢弃所有其他邮件。将上面的第二行替换为:
/^To:.*@/ DISCARD No outgoing mails allowed
说明:
header_checks
文件逐行匹配。To:
包含允许的域),它将跳至下一个标题行,并从顶部再次开始标题检查。由于没有其他行匹配,这意味着邮件已送达。To:
包含另一个外部电子邮件地址),它将重定向邮件。Cc:
又Bcc:
如何呢?