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


13

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

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

我想要的是配置后缀,以便它接收任何传出的电子邮件并将其重定向到单个电子邮件地址,而不是传递到实际目的地。

我正在运行Ubuntu服务器9.10。

先感谢您

Answers:


19

设置本地用户以接收所有捕获的邮件:

adduser mailtrap

您需要添加main.cf:

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

然后在其中创建/ etc / postfix / transport:

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

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

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


这正是我想要的...谢谢!
thatjuan 2010年

3
对我的作品,但只有后,我加luser_relay = xxxxxmain.cf。没有这个,电子邮件就会退回。
亚历克斯R

1
使用Ubuntu时,您还可以使用重启Postfix sudo service postfix restart。上面提到的main.cf文件的位置是/etc/postfix/main.cf。首次安装和设置Postfix时,可以使用Local only安装选项。
mtnorthrop 2012年

在MAC你应该运行postmap hash:/etc/postfix/transportsudo postfix stopsudo postfix start
邦道

这很棒。有谁知道当邮件有多个收件人时如何消除重复?
graywh

10

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

在/etc/postfix/main.cf中:

virtual_alias_maps = pcre:/etc/postfix/virtual

在/ etc / postfix / virtual中:

/.*@.*/ root

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

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

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


2
请注意,您可能需要sudo apt-get install postfix-pcre事先避免,以免出现意外。
mirabilos 2015年

对我来说效果很好!
michael-mammut

错误“虚拟别名表中的用户未知”
Alex R

5

Postfix提供了一种称为smtp-sink的东西。默认情况下,它会将接收到的所有电子邮件拒之门外。更高版本也可以配置为捕获文件中的电子邮件。

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


一个如何调用smtp-sink?我在网上找到的一个联机帮助页使它看起来像是一个正常程序,但是如果它带有postfix,则它未安装在我的系统上(OSX 10.6)。我将如何运行此服务?
克里斯·布鲁姆

smtp-sink有一个联机帮助页。但是这里也描述了一些参数:blog.malowa.de/2011/04/postfix-as-spam-trap-server.html
mailq
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.