根据 SMTP Auth 重写目标地址

根据 SMTP Auth 重写目标地址

为了开发目的,我们想要建立一个邮件服务器(postfix),将通过特定 SMTP 帐户发送的所有邮件转发到同一个帐户。

编辑:邮件将不再寄送至原地址。

因此我们会为不同的项目创建不同的帐户,并且一个项目的所有邮件都会发到一个邮箱。

我们目前采用的是这个解决方案:重写所有(一个收件人除外)外发电子邮件的收件人

但是我们如何根据 SMTP AUTH 帐户使其适应不同的目标地址?

答案1

这里有两个选项:

1. 使用sender_bcc_mapsPostfix 中的选项。

sender_bcc_maps(默认值:空)

可选的 BCC(密件抄送)地址查找表,按发件人地址索引。当邮件从 Postfix 外部进入时,将添加 BCC 地址(不支持多个结果)。

您需要添加以下内容/etc/postfix/my.cnf

sender_bcc_maps = hash:/etc/postfix/bcc_maps

并在/etc/postfix/bcc_maps文件中添加所需的映射:

[email protected] [email protected]
[email protected] [email protected]

然后运行:

postmap /etc/postfix/bcc_maps

并重新启动 Postfix。

  1. 基于发件人的重定向

在main.cf中:

smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access

在 sender_access 文件中:

from_address@domain redirect new_to_address@anotherdomain.

然后postmap /etc/postfix/sender_access重新启动 postfix

答案2

这没有答案基于 SMTP 认证但确实根据您的需求提供了解决方案。

为此,我使用了规范地图,我设置了一个新的 vps(centos/ubunbtu 等等),然后将我的“dev”系统设置为智能主机这个盒子(在网络内,例如 192.168.0)您可以对 wp-smtp 或其他系统执行相同操作,我们使用了 interworx,因此智能主机效果最好。

[root@mx ~]# cat /etc/postfix/main.conf
  recipient_canonical_classes = envelope_recipient
  recipient_canonical_maps = regexp:/etc/postfix/recipient_canonical_map
  mynetworks = 192.168.0.0/24
  header_checks = regexp:/etc/postfix/header_checks
  relayhost = mailserver.example.com

[root@mx ~]# cat /etc/postfix/header_check
  /^Subject: (.*?)$/ REPLACE Subject: [Dev] $1
[root@mx ~]# cat /etc/postfix/recipient_canonical_map

  /./ [email protected]

*regexp,因此不需要对文件进行后映射。

由于这是一个开发环境,从个人经验来看,我不会建议操纵您的生产来适应开发,而是构建这样的系统来连接这些系统。

http://www.postfix.org/postconf.5.html#recipient_canonical_maps

相关内容