如何开发和测试发送电子邮件的应用程序(而不用测试数据填充某人的邮箱)?[关闭]


129

我有很多发送电子邮件的应用程序。有时一次是一两个消息。有时是成千上万条消息。

在开发中,我通常通过用自己的地址替换任何收件人地址来进行测试。我确信这是其他人所做的,直到他们厌倦了它并找到更好的解决方案。

我正在考虑创建一个虚拟的SMTP服务器,该服务器仅捕获消息并将其转储到SQLLite数据库,mbox文件或任何其他文件中。

但是肯定有这样的工具吗?您如何测试发送电子邮件?


42
@casperOne为什么在三年半后结束这个问题?几个有用的解决方案是一个直接的问题。没有任何辩论,投票或扩展讨论。如果此页面将从Google搜索结果中消失,它会使互联网变得更好吗?
Patrick McElhaney 2012年

1
这是一个购物清单/产品推荐问题(本质上也是主观的和开放式的:“您如何测试发送电子邮件”),这些都不适合该网站。
casperOne 2012年

3
@casperOne然后重新表述问题,这样就不会那么主观了。我不是在寻找类别X中最好的产品。我在问类别X是否存在。无论如何,您还没有回答我的问题。说服我,删除此页面可以使互联网变得更好,因此我将自己删除它。
Patrick McElhaney 2012年

12
@casperOne我从Google查询基于Windows的选项时遇到了这个问题(与之前接触过的Linux选项相对)。我发现所有链接都很有帮助。该网页将非常错过。
justin.lovell 2013年

5
好吧,我只是在寻找一个Windows Mail服务器工具,该工具只接收来自本地主机的邮件,因此我发现此问题简单易行。投票赞成的答案是大多数人想要的,所以我看不到您为什么要关闭它,因为它确实满足了大多数人的期望。
sveri 2013年

Answers:


84

几周前,我遇到了同样的问题,并写下了这个代码:http : //smtp4dev.codeplex.com

Windows 7 / Vista / XP / 2003/2010兼容的虚拟SMTP服务器。坐在系统托盘中,不传送收到的消息。接收到的消息可以快速查看,保存并检查源/结构。对于测试/调试生成电子邮件的软件很有用。


+1一辆越野车,但总体上需要做。谢谢!
大卫2010年

4
很好,但是很容易崩溃。
olefevre 2011年

这看起来像是一个出色的应用程序,不幸的是,每当收到一封邮件时它就会崩溃(在win7上运行smtp4dev,从SQL Server数据库邮件测试电子邮件脚本发送)
Jona

只需下载此代码即可测试通过共享点发送电子邮件的代码。我没有在虚拟计算机上安装SMTP,因此此应用程序就像一个魅力一样工作。荣誉!
瑞安

2
就其价值而言,在Windows 7-64位上,smtp4dev不起作用,但papercut.codeplex.com可以。邮件是使用JavaMail生成的。
阿舒托什·金达尔

73

几年前,我遇到了以下针对.NET平台的解决方案。

<system.net>
  <mailSettings>
    <smtp deliveryMethod="SpecifiedPickupDirectory">
      <specifiedPickupDirectory pickupDirectoryLocation="C:\TestMailMessages\" />
    </smtp>
  </mailSettings>
</system.net>

只需将以上代码放在您的App.config或Web.config中。现在,当您发送消息时,它将作为文件存储在您提供的“ pickupDirectoryLocation”目录中。奇迹般有效。


3
太棒了,零安装...非常适合我。谢谢!
WildJoe 2011年

我在.Net Web应用程序中使用SmtpClient,并在编译时设置了特定的smtp主机。我没有看到将其添加到web.config末尾的行为发生任何变化。

4
啊哈!除非事先创建文件夹,否则会引发异常。好招!

1
零安装真棒技巧。
Mike Kruger

使用.NET堆栈时,我们遇到了相同的问题-我们最终构建了此服务来解决此问题
isNaN1247 2013年


14

那么,Dumbster可能就是您想要的。这是用Java编写的开源伪造SMTP服务器。它代替了真正的SMTP服务器,因此您可以在不设置任何代码的情况下,在现实的环境中测试应用程序。您可以确保将正确的邮件发送到SMTP服务器,而无需实际传递邮件。





5

如果使用Java,我将使用Wiser:Wiser是一个简单的SMTP服务器,可用于对发送邮件的应用程序进行单元测试。


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.