如何将所有外发电子邮件从postfixredirect到单个地址进行testing

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

有时,testing是通过真实的客户数据来执行的,因此我需要保证服务器在testing时不能发送电子邮件给我们的真实客户。

我想要的是configuration后缀,以便它将任何传出的电子邮件,并redirect到一个电子邮件地址,而不是交付到真正的目的地。

我正在运行Ubuntu服务器9.10。

先谢谢你

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

adduser mailtrap 

你需要在main.cf中添加:

 transport_maps = hash:/etc/postfix/transport luser_relay = mailtrap 

然后在这里创build/ etc / postfix / transport:

 localhost : your.hostname.example.com: * local:mailtrap 

保存然后运行: postmap /etc/postfix/transport最后重启postfix invoke-rc.d postfix restart

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

更好的办法是创build一个虚拟的别名文件:

在/etc/postfix/main.cf中:

 virtual_alias_maps = pcre:/etc/postfix/virtual 

在/ etc / postfix / virtual中:

 /.*@.*/ root 

您可以将rootreplace为您希望接收所有传出电子邮件的用户。 如果您希望本地邮件正常传递(无redirect),则可以调整此模式:

 /.*@(?!hostname\.localdomain$).*/ root 

原始想法在这里find: Postfix开发服务器 – 拦截所有外发邮件

Postfix提供了一个叫做smtp-sink的东西。 默认情况下,它会拦截收到的所有电子邮件。 更高版本也可以configuration为捕获文件中的电子邮件。

这在技术上并不使用后缀(而是由后缀提供的实用程序)。它也不会在技术上将每个电子邮件redirect到一个电子邮件地址。 但它确实捕获了端口25上的所有stream量,并将其转储到可以parsing的文件中。