35

我想编写一些集成测试来验证用户是否收到注册确认电子邮件。

理想情况下,为此我想:

  1. 创建临时电子邮件帐户。
  2. 在注册表中传递它。
  3. 检查我们是否收到电子邮件。
  4. 删除电子邮件帐户。

是否有提供简单 API 的一次性电子邮件帐户?我找不到任何内容,但现有的请求相当容易解析/发出请求(例如http://10minutemail.com/)。

这听起来是个好主意吗?另一种方法是使用一些 gmail 帐户并为此使用标签。但是,处理垃圾邮件文件夹、其他文件夹等中的 msgs 听起来有点复杂。

4

5 回答 5

72

您可以使用来自 Gmail 的电子邮件进行测试,只需附加+something到您的电子邮件地址:

myemail@gmail.com

您可以拥有一个测试帐户,该帐户将发送到您的正常 Gmail 地址:

我的电子邮件+testuser1@gmail.com

我的电子邮件+testusern@gmail.com

于 2016-08-10T06:07:44.920 回答
18

http://mailinator.com支持 POP3。

使用任何用户名通过 POP3 连接到服务器并检查电子邮件。

于 2012-10-24T16:35:48.087 回答
8

我知道这个问题比较老,但这很符合您的目的:

https://www.guerrillamail.com

  • 一次性电子邮件地址
  • 60 分钟后删除电子邮件
  • 可定制的临时电子邮件地址仪表板

我每天在测试电子邮件或注册我只会使用一次的服务时使用它,这些服务需要电子邮件验证。

我强烈推荐它!

于 2013-10-04T19:19:24.550 回答
4

您可以使用 API 为 QA/QC 工程师提供特殊服务:

您可以在文章http://railsware.com/blog/2012/06/18/remove-qa-headache-while-testing-email-delivery/中阅读更多内容

于 2016-10-31T10:44:44.350 回答
3

如果您在 linux 机器上运行,它已经运行了一个电子邮件服务(username@localhost...例如root@localhost),这对于测试电子邮件脚本来说非常完美。

我不知道您为什么要麻烦自动执行此操作,而最好使用依赖注入并创建一个模拟邮件类,这样您就可以充分进行集成测试-而不是传输电子邮件的最后阶段它只是将内容写入文件、数据库,或者只是在模拟对象中保持活动足够长的时间,以便在垃圾收集之前对其进行测试。

于 2012-10-05T17:08:53.823 回答