【问题标题】:Method for email testing电子邮件测试方法
【发布时间】:2010-09-19 11:14:40
【问题描述】:

我正在编写一个程序,它将通过电子邮件将报告发送给许多(约 100 个)客户,我想在向所有人发送垃圾邮件之前对其进行测试。

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

是否有专门设计用于测试目的的 SMTP 服务器?

有谁知道配置 exim 或 postfix 的方法,使其表现得像我上面描述的那样

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

【问题讨论】:

    标签: email testing smtp


    【解决方案1】:

    在java中你可以使用dumbster

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

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


    我刚刚找到了另一个几乎相同的替代方案:Greenmail

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

    【讨论】:

    • 哇!太感谢了。只想我一直需要!
    • 不错!谢谢!接受这个答案作为最佳答案怎么样?
    • dumbster 似乎已关闭,但感谢您的绿色邮件!它有一个standalone.jar,可以在本地启动电子邮件服务器,正是我所需要的!
    • 我一定会试试 greenmail @hipokito
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        “用于单元测试邮件的 Wiser 框架”

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

        Wiser 网站截图 (http://code.google.com/p/subethasmtp/wiki/Wiser):

        Wiser 是 Dumbster 的智能替代品,它构建在 SubEtha SMTP Java 库之上,它允许您的 Java 应用程序使用简单、易于理解的 API 接收 SMTP 邮件。

        【讨论】:

          【解决方案5】:

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

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

          http://smtp4dev.codeplex.com/

          【讨论】:

            【解决方案6】:

            【讨论】:

              【解决方案7】:

              鉴于您提到了 exim 和 postfix(我认为它们是某种 unix 的东西),这个答案可能没有它应该的那么有用,但请查看 Neptune。这是一个为自动化测试而设计的假 SMTP 服务器。如果您有一个备用的 Windows 盒子,您可以将 Neptune 放在上面,然后配置您的应用程序以“通过”Neptune 服务器发送。

              【讨论】:

                【解决方案8】:

                Exim 可以配置为接受传入的邮件但不传递它们。在文档中查找关键字 queue_onlyqueue_only_file

                【讨论】:

                  【解决方案9】:

                  我亲自修改了电子邮件地址以进行测试,我将它们发送到我的一个虚拟帐户,这样我不仅可以验证它们是否发送,而且它们以正确的格式显示。

                  【讨论】:

                    【解决方案10】:

                    在我的办公室,我们有一台服务器,该服务器设置为始终将所有收到的邮件发送到一个地址,而不管它实际发给谁。我们只需将所有测试环境都指向该服务器,然后观察 QA 邮箱填满。我不知道它是什么服务器,但它可能是有人发现的一些开源东西。

                    【讨论】:

                      【解决方案11】:

                      Sendmail 有一个测试模式。

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

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

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


                      编辑:见这篇文章:http://ussg.iu.edu/usail/mail/debugging/

                      【讨论】:

                        【解决方案12】:

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

                        支持将电子邮件写入文件、转发电子邮件或简单地在标准输出上打印。

                        【讨论】:

                          【解决方案13】:

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

                          免费提供:Post Hoc GitHub Site

                          欲了解更多信息:PostHoc: Testing Apps that Send Email

                          【讨论】:

                            【解决方案14】:

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

                            【讨论】:

                              猜你喜欢
                              • 1970-01-01
                              • 2011-05-26
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 2012-12-28
                              相关资源
                              最近更新 更多