【问题标题】:Good way to test email functionality测试电子邮件功能的好方法
【发布时间】:2017-07-12 19:59:50
【问题描述】:

在通过电子邮件通知的应用程序上工作。我想在不向生产服务器和客户端发送电子邮件的情况下运行测试。几年前,我记得有人用糟糕的电子邮件循环关闭了我们的交换服务器,并且不想重复......

对开发设置有什么建议吗?目前认为一个简单的 SMTP 服务器就可以完成这项工作,但我不熟悉那个空间。我需要能够查看发送到服务器的所有电子邮件,但它们永远不应该被传递。

谢谢。

【问题讨论】:

    标签: email testing


    【解决方案1】:

    Papercut 非常适合您的需求。在过去的几个月里,它一直是公开的。我已经使用它一个月了。测试电子邮件功能再简单不过了。

    1. 下载剪纸。
    2. 运行 Papercut,运行时它位于您的托盘中。
    3. 将应用程序的 smtp 主机配置为运行 Papercut 的机器。
    4. 观看 Papercut 接收电子邮件并查看内容。
    5. 完成后。关闭剪纸。

    【讨论】:

    • 另外,对于临时环境,Papercut 在 dummysmtp.com 上有一个网络版本。它会为您提供一个 SMTP URL 并将邮件保留两个小时。
    • 是的,就是这样。感谢您更正链接,不知道它什么时候坏了。
    • 您是否知道 Linux 的任何替代方案?我正在运行 Ubuntu (Debian)。
    • @user371699 不,但 Papercut 是开源的。您可以通过添加控制台应用程序并在单声道下运行它来修改它。值得研究。
    • 这里是 2017 年,剪纸仍然摇滚
    【解决方案2】:

    设置一个传递到文件的别名非常简单,而不是通过任何主要 Unix/Linux 邮件服务器(如 Postfix 或 Sendmail)中的任何传递机制。在测试期间,您可以跟踪该文件以查看邮件是否按预期发送。测试结束后,您可以将其重定向到它真正应该去的任何地方。

    【讨论】:

    • 我将把它看作是更大的测试/开发环境的一部分。谢谢!
    【解决方案3】:

    您可以使用Mailtrap。您可以在登台服务器或开发服务器上进行设置。它易于使用,您也可以使用生产电子邮件地址。所有电子邮件都将被困在 mailtrap 的电子邮件收件箱中。 设置起来更容易。

    【讨论】:

      【解决方案4】:

      根据您的电子邮件机制,另一种选择是制作一个 testmail.(py,php,sh) 脚本,该脚本记录提供的所有参数并将它们转储到带有事件时间戳的标签表中。它并不优雅,但可以用于调试。技巧完全取决于您发送电子邮件的方式。

      同样,如果您使用 smtp 而不是 sendmail,则编写一个 ghetto 应用程序,该应用程序侦听某个高范围的端口号,然后以正确的值无声地回复。

      【讨论】:

        【解决方案5】:

        您的问题没有描述环境,但如果您使用的是 OO 语言(例如 Java),则可以使用依赖注入。写一个MessageSender接口,有两个实现;一个 (EmailMessageSender) 实际发送电子邮件,而另一个 (FileMessageSender) 捕获字符串中的消息。

        单独编写和测试EmailMessageSender;确认无误后上架。

        针对MessageSender 编写系统的其他部分,并使用FileMessageSender 的(注入)实例对其进行测试。 (如果FileMessageSender 也允许检索“已发送消息”的内容,那么您可以在单元测试中使用它。)

        验证系统的其余部分后,使用(再次通过注入)正确配置的 EmailMessageSender 实例部署它。

        【讨论】:

          【解决方案6】:

          为什么不简单地将电子邮件列表输出到文本文件并断开对邮件服务器的任何调用?

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2010-09-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多