我遇到过这样的情况:电子邮件发送到[电子邮件保护]配置为通过 virtual_alias_maps 进入列表服务器:
virtual_alias_maps = $virtual_maps hash:/Library/Server/Mail/Data/listserver/aliases/list_server_virtual
我也有电子邮件[电子邮件保护]也可以去那里,但列表服务器很烂(我被困住了),拒绝接受任何不是发往 domain1.com 的邮件。所以,我认为重写可能是解决方案。不幸的是,我不确定重写是否真的重写To: 标题,这是我所期望的以及我需要发生的(我认为我的期望是有缺陷的)。
因此,我补充道:
recipient_canonical_maps = hash:/Library/Server/Mail/Config/postfix/canonical
并且 /Library/Server/Mail/Config/postfix/canonical 包含:
[email protected] [email protected]
现在,电子邮件发送至[电子邮件保护]被重定向(“重写”?)至[电子邮件保护],但当电子邮件发送过来时,它仍然显示“收件人:[电子邮件保护]“。
因此,为了更容易地排除故障,我更新了规范以重写[电子邮件保护]直接来找我(避免任何潜在的列表服务器混淆):
[email protected] [email protected]
但是,当电子邮件发送到:[电子邮件保护], 他们是正确地送到了(送去了[电子邮件保护],但标题仍然显示“至:[电子邮件保护]“
有什么方法可以让 Postfix字面上地重写‘收件人:’标题?
答案1
不建议修改标头,Postfix 已放弃修改标头,原因如下:Postfix 地址重写:
Postfix 2.1 及更早版本始终会重写邮件头地址,并将 Postfix 自己的域信息附加到 Postfix 认为不完整的地址。虽然重写邮件头地址对于本地邮件来说是可以的,但对于远程邮件则不合适:
- 邮件标准不赞成重写邮件头地址,
- 附加 Postfix 自己的域名会产生不正确的结果,因为一些地址不完整,
- 附加 Postfix 自己的域名有时会导致垃圾邮件看起来像是由本地用户发送的。
Postfix 2.2 版本让您可以选择完全不重写来自远程 SMTP 客户端的邮件头,或者将此类邮件头中的不完整地址标记为无效。
可以改变这种行为规范地址映射:
注意:仅当客户端与参数匹配
local_header_rewrite_clients
或remote_header_rewrite_domain
配置参数指定非空值时,Postfix 2.2 及更高版本才会重写来自远程 SMTP 客户端的邮件头。要获取 Postfix 2.2 之前的行为,请指定local_header_rewrite_clients = static:all
还要注意的是,如果标头是 DKIM 签名的,则在重写标头后测试 DKIM 将会失败。这就是为什么这可能不是一个好主意的一个实际原因。