我有一台使用 Postfix 发送电子邮件的 Linux 服务器。它位于动态 ip 上,因此我使用“relayhost”参数通过 ssh 隧道将外发邮件发送到静态 ip 上的另一台服务器,然后从那里发送到现实世界。从 1998 年左右开始,它一直运行良好。
我目前正在为客户开发一些软件,它会根据数据库中的信息向该客户组织中的不同人员发送电子邮件。对于我的初始测试,我创建了假冒的人,他们都拥有 ptomblin+client1@{mydomain}.com 之类的电子邮件地址,它运行良好并将所有电子邮件发送给我。但现在我正在使用实时数据库,所有电子邮件地址都是针对客户组织中的真实人员的。我不是特别想向那些人发送电子邮件,告诉他们他们请求的系统访问权限已配置,因此我想要一种方法来将所有电子邮件重定向到该客户的域到我的电子邮件地址或文件。
如果我理解正确,您希望所有发往 example.com 的邮件都传送到您的邮件地址或文件,而不是转发到 relayhost 中指定的服务器:
第一步:在main.cf中添加example.com,
mydestination
这样发往example.com的邮件就可以在本地投递了。第 2 步:为 example.com 设置一个 catchall,并将所有电子邮件发送到您的邮件地址或文件。例如,您可以使用 postfix pcre 来实现这一点。
扩展步骤 2
在许多其他方法中,使用 postfix pcre 只是实现此目的的一种方法。根据garisson 的本教程:
创建一个名为 aliases-pcre 的文件,内容为:
将以下行添加到 main.cf(如果 main.cf 在 /etc/postfix 中):
重启后缀
现在,所有发往 *@example.com 的邮件都应该转到 mylocaluser mailbox/maildir。
同样,这只是一个例子。您可以使用最适合您需要的任何其他方法。我倾向于大量使用 pcre,因为它允许使用更复杂的正则表达式。
但是,以上方法不起作用,因为您需要虚拟域。
这是一个最小的示例配置:
文件
/etc/postfix/aliases-pcre
好吧,埃里克让我接近正确的道路,但还不够。这就是我所做的:
在 /etc/postfix/main.cf 中:
在 /etc/postfix/virtual_alias
一个
postfix reload
之后,我去参加比赛。(顺便说一句,你不需要postmap
对正则表达式文件做,只需要散列)