我正在编写一个程序,在我向所有人发送垃圾邮件之前,我要通过电子邮件发送许多(~100)个客户的报告。
我想针对我的生产数据进行测试运行并实际将消息发送到SMTP服务器,但我不希望SMTP服务器实际传递消息。我希望服务器从我的应用程序的角度看起来像一个真正的SMTP服务器,但不是传递消息,我只是希望它存储消息,并记录发生的事情。
是否有专为测试目的而设计的SMTP服务器?
有没有人知道配置exim或postfix的方法,就像我上面描述的那样
您使用什么来测试群发电子邮件?
答案 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服务器。进入系统托盘并且不传送收到的消息。可以快速查看,保存收到的消息并检查源/结构。
答案 5 :(得分:2)
http://skaraarslan.blogspot.com/2008/02/how-to-check-email-works-without-using.html
(这假设您使用.net发送电子邮件)
答案 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界面检查它们。
免费获取答案 13 :(得分:0)
如果您希望手动测试电子邮件发送的内容,并且电子邮件模板具有您期望的正确类型的html和css,那么我建议使用maildev https://www.npmjs.com/package/maildev。您可以将其安装并作为节点模块运行,也可以作为docker容器运行!我发现它对电子邮件的基本健全性测试非常方便。