Postfix拒收收件人为指定地址的邮件
# 编辑黑名单
cat /etc/postfix/recipient_blocklist
wf@x.yz REJECT
cy@x.yz REJECT
# 编辑黑名单
cat /etc/postfix/recipient_blocklist
wf@x.yz REJECT
cy@x.yz REJECT
邮箱默认 MX 记录指向梭子鱼邮件网关,所有外部邮件先经过网关过滤再投递到邮箱服务器。同时在 O365 上配置了 Connector,允许直接投递到网关。
需要将特定域的邮件通过静态路由(transport map)转发到指定地址,绕过默认投递逻辑。
sudo touch /etc/postfix/staticroute
sudo vi /etc/postfix/staticroute
格式为 目标域/收件人 转发目标:
# 整个域转发
example.com smtp:[mail-gateway.example.com]
# 特定用户转发
user@example.com smtp:[internal-server.example.com]
注意:
[]表示直接使用 IP/主机名解析,不查找 MX 记录。
编辑 /etc/postfix/main.cf,找到 transport_maps 行,在其下方添加:
transport_maps = hash:/etc/postfix/transport
hash:/etc/postfix/staticroute
如果文件中已有 transport_maps,在末尾追加即可(多个映射源用空格分隔)。
sudo postmap /etc/postfix/staticroute
sudo systemctl reload postfix
查看当前路由是否生效:
postmap -q example.com /etc/postfix/staticroute
发送测试邮件,检查 maillog:
公司换了新的域名和邮件系统,但临时无法把旧域名绑定到新的邮件系统。两套系统邮箱地址前缀相同,后缀不同,于是想到了用postfix做邮件转发。
/etc/postfix/virtual,内容为/^([^@]*)@olddomain/ $(1)@newdomainmain.cf,在virtual_alias_maps = 后添加 regexp:/etc/postfix/virtualsudo systemctl reload postfix