如何开发和测试一个发送电子邮件的应用程序(而不用测试数据填充某人的邮箱)? [关闭]

Posted

技术标签:

【中文标题】如何开发和测试一个发送电子邮件的应用程序(而不用测试数据填充某人的邮箱)? [关闭]【英文标题】:How to develop and test an app that sends emails (without filling someone's mailbox with test data)? [closed] 【发布时间】:2010-11-03 15:32:03 【问题描述】:

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

在开发过程中,我通常用我自己的地址代替任何收件人地址来进行测试。我确信这就是其他人所做的,直到他们厌倦它并找到更好的解决方案。

我正在考虑创建一个虚拟 SMTP 服务器,它只捕获消息并将它们转储到 SQLLite 数据库或 mbox 文件或其他任何内容中。

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

【问题讨论】:

@casperOne 为什么要在三年半后结束这个问题?这是一个简单的问题,有一些有用的解决方案。没有任何辩论、投票或扩展讨论。如果此页面从 Google 搜索结果中消失,互联网会变得更好吗? 这是一个购物清单/产品推荐问题(本质上也是主观和开放式的:“你如何测试发送电子邮件”),这些都不再适合该网站了。 @casperOne 然后重新表述这个问题,这样它就不会那么主观了。我不是在寻找 X 类中最好的产品。我是在询问 X 类是否存在。无论如何,你还没有回答我的问题。说服我删除这个页面会让互联网变得更好,我会自己删除它。 @casperOne 我在 Google 询问基于 Windows 的选项时遇到了这个问题(与我之前接触过的 Linux 选项相反)。我发现 all 这些链接很有帮助。将非常想念这个网页。 好吧,我只是在寻找一个 Windows 邮件服务器工具,它只从本地主机接收邮件,我发现这个问题很简单。赞成的答案是大多数人都在寻找的答案,所以我不明白您为什么要关闭它,因为它符合大多数人的期望。 【参考方案1】:

几周前我遇到了同样的问题并写了这个:http://smtp4dev.codeplex.com

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

【讨论】:

+1 有点小车,但总体上可以满足它的需要。谢谢! 很好用,但很容易崩溃。 这看起来像一个很棒的应用程序,不幸的是每次收到邮件时它都会崩溃(在win7上运行smtp4dev,从SQL Server数据库邮件测试电子邮件脚本发送) 刚刚下载了这个来测试通过共享点发送电子邮件的代码。我没有在我的虚拟机上安装 SMTP,所以这个应用程序就像一个魅力。赞一个! 对于它的价值,在 Windows 7 - 64 位上,smtp4dev 不起作用,但 papercut.codeplex.com 起作用。邮件是使用 JavaMail 生成的。【参考方案2】:

不久前,我遇到了以下 .NET 平台的解决方案。

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

只需将上述代码放在您的 App.config 或 Web.config 中。当您现在发送消息时,它将作为文件存储在您提供为“pickupDirectoryLocation”的目录中。像魅力一样工作。

【讨论】:

真棒,零安装...对我来说非常有用。谢谢! 我在 .Net Web 应用程序中使用 SmtpClient,并在编译时设置了特定的 smtp 主机。基于将其添加到我的 web.config 的末尾,我没有看到任何行为变化。 啊哈!除非您事先创建文件夹,否则将引发异常。好技巧! 零安装的绝妙小技巧。 我们在使用 .NET 堆栈时遇到了同样的问题 - 我们最终构建了 this service 来解决这个问题【参考方案3】:

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

基于应用程序的版本也适合我。

【讨论】:

【参考方案4】:

那么 Dumbster 可能就是您想要的。这是一个用 Java 编写的开源假 SMTP 服务器。它取代了真正的 SMTP 服务器,因此您可以在实际设置中测试您的应用程序,而无需删除任何代码。您可以确保将正确的消息发送到 SMTP 服务器,而无需实际传递消息。

【讨论】:

那个链接失效了【参考方案5】:

这与 smtp4dev 类似,只是在 java 中实现,因此它适用于非 Windows 开发人员。

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

【讨论】:

在 mac 上,要使用端口 25,请在终端中运行以下命令,在与您下载的文件相同的目录中:sudo java -jar DevNullSmtp.jar【参考方案6】:

还有Papercut和Neptune,可惜这些都不能以便携的方式运行。

【讨论】:

我终于有时间尝试这些了。不幸的是,两者都一直在崩溃。 刚试过剪纸。效果很好,并且具有能够直接在 UI 中查看电子邮件的额外功能。 剪纸作品。太糟糕了,它只是 Windows。想看看这个跨平台。【参考方案7】:

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

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

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

【讨论】:

同样。它只是工作。【参考方案8】:

如果您使用的是 java,我会使用 Wiser:Wiser 是一个简单的 SMTP 服务器,您可以使用它来对发送邮件的应用程序进行单元测试。

【讨论】:

【参考方案9】:

您也可以使用 netDumbster。

http://netdumbster.codeplex.com/

【讨论】:

以上是关于如何开发和测试一个发送电子邮件的应用程序(而不用测试数据填充某人的邮箱)? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

版本控制和业务上线更新流程介绍

发送电子邮件 - MAC 中的 PHP XAMPP

面向对象第四次博客

纯java实现邮件发送服务(亲测好用)

如何使用 Zend_Mail、sendmail 和 localhost 发送电子邮件?

ActionMailer在测试模式下发送真实的电子邮件! - 如何关闭?