如何开发和测试一个可以发送电子邮件的应用程序(而不需要用测试数据填充别人的邮箱) ?

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

在开发过程中,我通常用我自己的地址代替任何收件人的地址来进行测试。我相信其他人也是这么做的,直到他们受够了,找到了更好的解决办法。

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

但是 当然这样的工具已经存在了吗? 你如何测试发送电子邮件?

46750 次浏览

也许你想要的就是垃圾车。这是一个用 Java 编写的开源假 SMTP 服务器。它取代了真正的 SMTP 服务器,因此您可以在一个真实的设置中测试您的应用程序,而无需输出任何代码。您可以确保将正确的邮件发送到 SMTP 服务器,而无需实际传递邮件。

几个星期前,我遇到了同样的问题,我写了这样一句话: http://smtp4dev.codeplex.com

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

这与 smtp4dev 类似,只不过是在 Java 中实现的,所以它适用于非 Windows 开发人员。

Http://www.aboutmyip.com/aboutmyxapp/devnullsmtp.jsp

还有 剪纸海王星,糟糕的是这些都不能以便携的方式运行。

现在有一个基于网络的剪纸版本。

而且基于应用程序的版本对我来说也很好用。

几年前,我遇到了下面的解决方案的 .NET 平台

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

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

如果你正在使用 java,我会使用 更聪明: Wiser 是一个简单的 SMTP 服务器,您可以使用它来对发送邮件的应用程序进行单元测试。

您也可以使用 netDumbster。

Http://netdumbster.codeplex.com/

多年来,我一直在使用 ToolHeap 中的“测试邮件服务器工具”。

Http://www.toolheap.com/test-mail-server-tool/

这是一个简单的应用程序,运行在您的系统托盘和转储电子邮件到一个文件夹。它还可以配置为在默认邮件程序中打开每个电子邮件。