如何设置一个伪造的SMTP服务器来捕获所有邮件?


50

我正在寻找一个本质上遵守RFC的smtp服务,除了发送简单地记录到文件的邮件而不是发送邮件

[date] sent mail to <address>

管他呢。我认为大约半小时后,我便可以将它与python中所需的最低限度的功能结合在一起,但是如果有一个更好的现有项目,我宁愿使用它。

需要它的原因是调试了一个应用程序,该应用程序一直发送原本应发送的邮件数量的7倍。

编辑:并且已经问过:https : //stackoverflow.com/questions/1006650/dummy-smtp-server-for-testing-apps-that-send-email


是的,这个问题在stackoverflow上得到了回答,但是我在那边没有看到基于python的答案。
BitwiseMan '16

在stackoverflow上也可以回答此问题:stackoverflow.com/questions/48653699/…–
realbart

Answers:


58

如果您周围有Python,这会将SMTP会话写入stdout。

sudo python -m smtpd -n -c DebuggingServer localhost:25

http://docs.python.org/library/smtpd.html#debuggingserver-objects


我收回了它,它确实支持HTML电子邮件。
HTTP500 2012年

2
仍然是调试的最佳方法!
MarZab 2015年

不支持starttls :(
Att Righ

1
@tttigh smtplib已实现TLS,但使用它不会像这样简单。发布问题;也许有人已经有脚本了?
John Mee



6

我们在开发和登台环境中使用http://mailtrap.io Web服务。它与平台无关,不需要您运行自己的SMTP。

它提供:

  • 所有电子邮件都集中在一个地方
  • 开发团队对收件箱的共享访问
  • 开发人员工具来分析电子邮件
  • 灵活的配置

这很棒,而且比我正在做的还要强大!谢谢。
richo 2011年

我喜欢他们提供一个慷慨的免费计划(目前)。
David



2

免责声明:这是一个较晚的答案,但我真正相信它会帮助将来的观众。另请注意,我从事该产品的开发。

为了解决这个确切的问题,我们建造了Mailosaur。从那以后,我们就建立了它来添加测试电子邮件地址和SMTP。



1

我只是分叉几乎任何smtp服务,然后将结果发送到存储桶中!


我正在谈论的是批量电子邮件,其中涉及实时客户数据。我需要肯定的是,我不会用邮件充斥Intertrons。
richo 2010年

我结束了对python的smtpd.SMTPServer类的扩展,当我对它满意的时候(我将它与我前一段时间写的httpd测试套件捆绑在一起),将在一周左右的时间内公开发布该项目。我暂时将套件命名为sdb。
richo 2010年

@Richo:有很多方法可以阻止SMTP服务器发送电子邮件-大多数允许您关闭传出连接或重新路由所有邮件,或者可以阻止传出连接到端口25。...没人会费心编写一个虚拟邮件服务器配置一个真正的以这种方式表现的操作很简单。
symcbean 2010年

@symcbean:这些都是有效点。就我个人而言,我发现停止通常的邮件服务,启动调试服务,进行调试,然后重新启动实时环境更容易。诸如丢弃所有端口25流量之类的麻烦会阻止其他任何东西发送邮件。但是,感谢您的帮助,
richo 2010年

所有这些都没有道理,所有smtp网关都会为您提供此确切功能,而不会丢失任何出站实时电子邮件!
Tony Roth,2010年
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.