Postfix 收件人从一个域重写到另一个域

Postfix 收件人从一个域重写到另一个域

我遇到过这样的情况:电子邮件发送到[电子邮件保护]配置为通过 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_clientsremote_header_rewrite_domain配置参数指定非空值时,Postfix 2.2 及更高版本才会重写来自远程 SMTP 客户端的邮件头。要获取 Postfix 2.2 之前的行为,请指定

local_header_rewrite_clients = static:all

还要注意的是,如果标头是 DKIM 签名的,则在重写标头后测试 DKIM 将会失败。这就是为什么这可能不是一个好主意的一个实际原因。

相关内容