1

我想使用mailcatcher检查我的邮件是否已发送。他们不是,我想知道为什么,因为邮件是生成的并且肯定会被调用。

所以在我的 config/enviroment/development.rb 我写道:

config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = { :address => "localhost", :port => 1025 }

我的电话看起来像这样:

OrderMailer.send_new_order(@order).deliver

最后生成的控制器是这样的:

class OrderMailer < ActionMailer::Base
  default from: "from@example.com"
  def send_new_order(order)
    @greeting = "Hi"
    mail to: "to@example.org", subject: "Test"
  end
end

当然,mailcatcher 也会运行。那为什么邮件没有发送?

4

2 回答 2

14

我发现,我为开发环境使用了错误的 SMTP 地址。

它必须是

config.action_mailer.smtp_settings = { :address => "127.0.0.1", :port => 1025 }

代替

config.action_mailer.smtp_settings = { :address => "localhost", :port => 1025 }
于 2012-09-26T09:20:24.477 回答
2

https://github.com/sj26/mailcatcher/issues/182

$ mailcatcher -f -v
Starting MailCatcher
==> smtp://127.0.0.1:1025
==> http://127.0.0.1:1080
==> SMTP: Received message from '<donotreply@xxx.com>' (676 bytes)
于 2015-09-21T22:43:47.333 回答