如何开发和testing一个发送电子邮件的应用程序(没有用testing数据填写某人的邮箱)?

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

在开发中,我通常会用我自己的地址replace任何收件人地址来进行testing。 我确信这就是其他人所做的,直到他们厌倦并find更好的解决scheme。

我正在考虑创build一个虚拟的SMTP服务器,它只捕获这些消息,并把它们转储到一个SQLLite数据库或者一个mbox文件或者其他东西中。

但是这样的工具肯定已经存在了? 你如何testing发送电子邮件?

几个星期前,我面临同样的问题,并写道: http : //smtp4dev.codeplex.com

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

几年前,我遇到了.NET平台的以下解决scheme。

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

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

现在有一个基于Web的版本的Papercut。

此外,基于应用程序的版本适合我。

哑巴可能是你想要的。 这是一个用Java编写的开源虚假SMTP服务器。 它取代了一个真正的SMTP服务器,所以你可以testing你的应用程序在一个现实的设置,而没有任何代码被剔除。 您可以确保将正确的消息发送到SMTP服务器,而不实际传递消息。

这是类似于smtp4dev除了在java中实现,所以它适用于非Windows开发人员。

http://www.aboutmyip.com/AboutMyXApp/DevNullSmtp.jsp

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

我一直在使用ToolHeap的“testing邮件服务器工具”多年。

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

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

如果你使用java,我会使用Wiser :Wiser是一个简单的SMTP服务器,你可以用它来发送邮件的unit testing应用程序。

你也可以使用netDumbster。

http://netdumbster.codeplex.com/