是否可以设置内部测试电子邮件服务器来保存发送给它的所有邮件?

是否可以设置内部测试电子邮件服务器来保存发送给它的所有邮件?

我的工作需要设置一个测试电子邮件服务器,该服务器将接收所有发送给它的邮件,并将其转储到帐户中以供以后检索。我已经离开电子邮件服务器配置游戏很长时间了,我认为这是可能的,但我不确定。

举一个更具体的例子来说明我们的需求:我们有代码在某些情况下向外部客户端发送电子邮件。我们希望将代码指向一个测试服务器,该服务器将接受这些电子邮件,但不让它们到达外部世界(是的,以前发生过,哎呀)。然后,我们需要能够验证如果我们将电子邮件发送到真实服务器,电子邮件 X 是否会发送给客户端 Y。

作为额外奖励,我们在真实服务器上有一个错误电子邮件别名,该别名会发送给我们希望继续收到电子邮件的程序员。因此,发送到测试服务器上该别名的任何内容都会转发到我们的真实服务器进行传递。

我偏爱 postfix,但我们的 IT 人员似乎喜欢使用 sendmail(或 Exchange)来处理所有事情,因此任何服务器的提示/指针都会很有帮助。非常感谢。

答案1

我认为您想要的是一个邮件接收器。

您可能需要根据您的具体要求进行一些修改,但我已经使用类似的东西来捕获用户验证电子邮件。

此过程使用 Postfix 并假设基于 Redhat 的发行版。

  1. 如果在本地开发箱中,您可能需要编辑 /etc/postfix/main.cf 才能使电子邮件正常工作。即:relayhost = somerelay.isp.net

  2. 编辑 /etc/postfix/main.cf 以包含:transport_maps = hash:/etc/postfix/transport

  3. 创建或编辑 /etc/postfix/transport 并包含:example.com 测试:

  4. 运行:postmap /etc/postfix/transport

  5. 编辑 /etc/postfix/master.cf 以包含:test unix - nn - - pipe user=nobody argv=/bin/mail -s Signup [电子邮件保护]

  6. 服务 Postfix 重新加载

现在使用电子邮件地址注册 [电子邮件保护]将导致电子邮件被发送到 [电子邮件保护]。从那里,可以点击用户验证链接或检查电子邮件内容等。

因此,您可以为外部客户端电子邮件添加另一种传输方式并发送到本地服务器,然后使用上述方法将错误发送到真实服务器。

希望这可以帮助。

干杯

答案2

你检查过吗

always_bcc

main.cf 中的选项?

答案3

以下是我发现的一个 sendmail 解决方案:http://novosial.org/sendmail/discard/

答案4

我使用这个来伪造电子邮件发送:https://mailtrap.io

Mailtrap 是一个虚假的 SMTP 服务器,供开发团队测试、查看和共享从开发和登台环境发送的电子邮件,而不会向真实客户发送垃圾邮件。

相关内容