为了开发目的,我们想要建立一个邮件服务器(postfix),将通过特定 SMTP 帐户发送的所有邮件转发到同一个帐户。
编辑:邮件将不再寄送至原地址。
因此我们会为不同的项目创建不同的帐户,并且一个项目的所有邮件都会发到一个邮箱。
我们目前采用的是这个解决方案:重写所有(一个收件人除外)外发电子邮件的收件人
但是我们如何根据 SMTP AUTH 帐户使其适应不同的目标地址?
答案1
这里有两个选项:
1. 使用sender_bcc_maps
Postfix 中的选项。
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。
- 基于发件人的重定向
在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