电子邮件测试方法

时间:2008-10-27 20:26:55

标签: email testing smtp

我正在编写一个程序,在我向所有人发送垃圾邮件之前,我要通过电子邮件发送许多(~100)个客户的报告。

我想针对我的生产数据进行测试运行并实际将消息发送到SMTP服务器,但我不希望SMTP服务器实际传递消息。我希望服务器从我的应用程序的角度看起来像一个真正的SMTP服务器,但不是传递消息,我只是希望它存储消息,并记录发生的事情。

是否有专为测试目的而设计的SMTP服务器?

有没有人知道配置exim或postfix的方法,就像我上面描述的那样

您使用什么来测试群发电子邮件?

14 个答案:

答案 0 :(得分:15)

在java中,您可以使用dumbster

它易于使用,您可以验证您拦截的电子邮件的各个方面。

这是一个用于单元测试的Java SMTP服务器实现。 (只需确保将电子邮件重定向到运行dumbster的计算机...)


我刚刚发现另一种做法几乎相同:Greenmail

Greenmail还支持POP3,带有SSL的IMAP,因此您可以针对它测试您的客户端。

答案 1 :(得分:9)

对于.NET我将配置文件设置为将邮件传递到文件夹,然后您可以让自动化测试检查目录和文件。

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

答案 2 :(得分:5)

在搜索选项时,我发现以下内容可能有用。

答案 3 :(得分:5)

“用于测试邮件的更明智的框架”

我听说过其他一些开发人员从Dumbster转移到Wiser并且也迁移了我的测试代码。我工作过的Java组件之一每天发送数千封电子邮件,我使用Dumbster和Wiser为不同的电子邮件模板和方案编写了单元测试。我更喜欢Wiser。

从Wiser网站(http://code.google.com/p/subethasmtp/wiki/Wiser)剪切:

Wiser是Dumbster的智能替代品,它建立在SubEtha SMTP Java库之上,允许您的Java应用程序通过简单易懂的API接收SMTP邮件。

答案 4 :(得分:5)

一个好的电子邮件测试程序是smtp4dev(仅限Windows)。

这是一个虚拟的SMTP服务器。进入系统托盘并且不传送收到的消息。可以快速查看,保存收到的消息并检查源/结构。

http://smtp4dev.codeplex.com/

答案 5 :(得分:2)

答案 6 :(得分:2)

鉴于你提到exim和postfix(我正在考虑将其作为某种unix东西),这个答案可能没那么有用,但请查看Neptune。这是一个虚假的SMTP服务器,专为自动化测试而设计。如果你有一个备用的Windows框,你可以把海王星放在那里,然后配置你的应用程序“通过”海王星服务器发送。

答案 7 :(得分:1)

Exim可以配置为接收传入邮件但不传递邮件。在文档中查找关键字 queue_only queue_only_file

答案 8 :(得分:0)

我亲自修改要测试的电子邮件地址,我将它们发送到我的虚拟帐户,这样我不仅可以验证它们发送的内容,还可以验证它们是否以正确的格式显示。

答案 9 :(得分:0)

在我的办公室,我们有一台服务器设置为始终将所有收到的邮件发送到一个地址,无论它实际发送给谁。我们只是将所有测试环境指向该服务器并观察QA邮箱是否已填满。我不知道它是什么服务器,但它可能是某人找到的开源软件。

答案 10 :(得分:0)

Sendmail有一个测试模式。

您只需使用 -bt 参数调用sendmail。举个例子:

/usr/lib/sendmail -bt -Ciu-testconfiguration.cf

请注意,在此方法中,Sendmail需要对重写规则进行特殊配置。您需要了解Sendmail如何重写地址,以便为测试模式正确创建.cf文件。


修改:请参阅此文章:http://ussg.iu.edu/usail/mail/debugging/

答案 11 :(得分:0)

在对我找到的解决方案不满意之后,我最终写了developmentSMTP,易于使用,100%Java - &gt;跨平台。

支持将电子邮件写入文件,转发电子邮件或只是在stdout上打印。

答案 12 :(得分:0)

Post Hoc是一个纯Java应用程序,看起来与您正在测试的应用程序的SMTP服务器完全相同,但它只是收集所有电子邮件消息,并允许您使用Web界面检查它们。

可在Post Hoc GitHub Site

免费获取

有关详细信息:PostHoc: Testing Apps that Send Email

答案 13 :(得分:0)

如果您希望手动测试电子邮件发送的内容,并且电子邮件模板具有您期望的正确类型的html和css,那么我建议使用maildev https://www.npmjs.com/package/maildev。您可以将其安装并作为节点模块运行,也可以作为docker容器运行!我发现它对电子邮件的基本健全性测试非常方便。