我正在使用 Postfix(v3.7.3)配置 SMTP 服务器,用于在 openSUSE 15.5 Leap 上发送本地(即仅限主机)邮件。
我想要的是将消息发送给本地“用户”(该主机上没有真正的用户)比如 root,将这些邮件重定向到某个或某些真实地址,并在To:
消息头字段中看到正确的地址(即真正的收件人)。
main.cf
配置为:
...
myorigin = $myhostname
virtual_alias_maps = lmdb:/etc/postfix/virtual
smtp_header_checks = pcre:/etc/postfix/smtp_header_checks
...
在中/etc/postfix/virtual
,我已经设置了重定向:
root [email protected], [email protected]
我可能应该alias_maps
使用来做到这一点/etc/aliases
,但默认情况下,local
被注释/禁用,master.cf
所以我使用虚拟。
在 中smtp_headers_checks
,我有:
/^To:.*[email protected].*/ REPLACE To: [email protected], [email protected]
现在,我发现这很容易出错,而且我觉得自己做的方式不对。容易出错是因为我必须手动保持virtual
同步smtp_headers_check
。因此,当有人修改一个文件时,他还应该记得修改另一个文件。
经验告诉我:这种情况不会发生。
答案1
您是否正在寻找canonical_maps
?
消息的可选地址映射查找表标题和信封。映射适用于发件人和收件人的地址,在信封和标题中,由
canonical_classes
参数。这通常用于清理旧邮件系统中的脏地址,或用 替换登录名Firstname.Lastname
。表格格式和查找记录在规范(5)有关 Postfix 地址操作的概述,请参阅地址重写自述文件文档。
由于的格式与的格式canonical_maps
相同virtual_alias_maps
,因此您可以使用相同的文件,例如,
canonical_maps = hash:/etc/postfix/virtual
如果您只想重写To:
标题中的地址,则可以用以下方法限制它:
canonical_classes = header_recipient