【问题标题】:Is there a way to setup a fake email inbox to check that email messages are being sent in ruby on rails?有没有办法设置一个虚假的电子邮件收件箱来检查电子邮件是否在 ruby​​ on rails 中发送?
【发布时间】:2012-02-17 17:43:48
【问题描述】:

我正在测试多个用户帐户,不想设置不同的电子邮件进行测试。我只需要知道电子邮件是否已从我的应用成功发送。

有没有办法设置一个虚假的电子邮件收件箱来检查电子邮件是否在 Ruby on Rails 中发送?

【问题讨论】:

  • “从应用成功发送”是什么意思?这里通常有两个阶段:一个是应用程序将消息发送到邮件服务器(sendmail、Amazon SES、gMail 等),另一个是邮件程序实际将消息发送给您的用户。您对哪一部分(或两者)感兴趣?
  • 与其设置工作电子邮件,我想知道是否有办法可以确认邮件程序确实将邮件发送到邮件服务器。我只是想知道 Rails 部分的事情已经完成并且可以正常工作,这样我就可以检查是否在以后收到电子邮件。

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 rubygems


【解决方案1】:

设置MailCatcher:

MailCatcher 运行一个超级简单的 SMTP 服务器,它可以捕获发送给它的任何消息以显示在 Web 界面中。运行 mailcatcher,将您最喜欢的应用程序设置为发送到 smtp://127.0.0.1:1025 而不是您的默认 SMTP 服务器,然后查看 http://127.0.0.1:1080 以查看到目前为止已到达的邮件。

这为您做了几件有用的事情:

  • 您不仅可以看到正在发送的电子邮件,还可以查看电子邮件(文本和 HTML 部分)。
  • 您不必担心向任何人发送垃圾邮件,因为您的应用程序发送的所有电子邮件都会直接发送到 MailCatcher。
  • 您不必担心在任何地方设置一堆真实的电子邮件帐户,MailCatcher 不关心地址是什么,它只是抓取电子邮件并将其显示给您。

最重要的是,您的应用程序无需更改即可使用它,您只需设置适当的 SMTP 值即可使用。这意味着您不会在开发、测试和生产过程中为您的电子邮件处理运行不同的代码路径,这意味着更少的错误和深夜灾难电话。

【讨论】:

  • 完美..正是我想知道的存在与否。我看确实如此。谢谢
【解决方案2】:

在开发和测试期间,电子邮件也会显示在控制台上。这对我来说已经足够了——我不怀疑 rails 有能力在它投入生产后实际发送它。

【讨论】:

    猜你喜欢
    • 2017-03-04
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 2011-09-14
    • 2016-12-18
    相关资源
    最近更新 更多