如何将所有外发电子邮件从 postfix 重定向到单个地址进行测试

0x6*_*16E 14 email ubuntu postfix testing redirect

我正在为发送一些电子邮件通知的基于 Web 的应用程序设置测试服务器。

有时测试是使用真实客户数据执行的,因此我需要保证服务器在我们测试时无法向我们的真实客户发送电子邮件。

我想要的是配置 postfix,以便它接收任何外发电子邮件并将其重定向到单个电子邮件地址,而不是发送到真正的目的地。

我正在运行 Ubuntu 服务器 9.10。

先感谢您

小智 21

设置本地用户以接收所有被困邮件:

adduser mailtrap
Run Code Online (Sandbox Code Playgroud)

您需要在 main.cf 中添加:

transport_maps = hash:/etc/postfix/transport
luser_relay = mailtrap
Run Code Online (Sandbox Code Playgroud)

然后在那里创建 /etc/postfix/transport :

localhost :
your.hostname.example.com:
* local:mailtrap
Run Code Online (Sandbox Code Playgroud)

保存然后运行: postmap /etc/postfix/transportfinally restart postfixinvoke-rc.d postfix restart

所有本地电子邮件将正常发送,外部电子邮件将发送到本地mailtrap帐户。

  • 对我有用,但只有在我在 `main.cf` 中添加 `luser_relay = xxxxx` 之后。没有这个,电子邮件会反弹。 (3认同)

Pau*_*ann 10

更好的是创建一个虚拟别名文件:

在 /etc/postfix/main.cf 中:

virtual_alias_maps = pcre:/etc/postfix/virtual
Run Code Online (Sandbox Code Playgroud)

在 /etc/postfix/virtual 中:

/.*@.*/ root
Run Code Online (Sandbox Code Playgroud)

您可以替换root为您希望接收所有外发电子邮件的任何用户。如果您希望本地邮件正常发送(无需重定向),可以调整此模式:

/.*@(?!hostname\.localdomain$).*/ root
Run Code Online (Sandbox Code Playgroud)

在这里找到的原始想法: Postfix development server - 拦截所有外发邮件

  • 请注意,您可能需要事先“sudo apt-get install postfix-pcre”,以避免……意外。 (2认同)

top*_*gon 5

Postfix 提供了一种叫做 smtp-sink 的东西。默认情况下,它会屏蔽收到的所有电子邮件。更高版本还可以配置为在文件中捕获电子邮件。

这在技术上不使用 postfix(而是由 postfix 提供的实用程序。)它也不在技术上将每封电子邮件重定向到单个电子邮件地址。但它确实捕获了端口 25 上的所有流量并将其转储到可以解析的文件中。