Rails: 在本地主机上测试 mailgun

Rails: test mailgun on localhost

我在 Heroku 上有一个 Rails 应用程序 运行,它使用 Mailgun 来处理收到的电子邮件。我一直无法弄清楚如何在本地(在本地主机上)调试我的电子邮件处理,而不是每次进行更改时都必须将所有内容推送到 heroku。 (这只是一个测试应用程序 - 我是唯一一个使用它的人)

是否可以在本地使用 Mailgun?如果是这样,我该怎么做?

提前致谢

Mailgun 为您提供 store a message for later retrieval 选项。如果您以这种方式配置它,您将能够从开发中获取消息进行处理,而无需为 Mailgun 设置一个 publicly-accessible webhook。

但我假设您已为生产配置了 HTTP 端点,并且在不同环境之间以不同方式做事并不有趣。有一些工具可以让您设置路由到 localhost:

的 public 端点
  • ngrok, which I've used to good effect to test Twilio。您可以设置永久子域,这样您就不必经常更改 Mailgun 配置。
  • UltraHook,我没有亲自使用过,但看起来是一样的。
  • Localtunnel 看起来最容易启动,但就像每次启动时都得到不同的主机一样。

如果您有永久 public 仅可访问的服务器,您还可以 maintain your own tunnel

mailgun 提供了一个沙箱,您可以将其用于本地主机,唯一的缺点是您必须将测试电子邮件添加到有效的收件人。

使用这个 gem 可能是另一种可能的解决方案:

https://github.com/ryanb/letter_opener/ or https://github.com/fgrehm/letter_opener_web 以获得更高级的功能

  • 从 repo 进行安装
  • 邮件将在新标签页中打开