Action Mailer 不发送电子邮件 - MailCatcher 和 sendmail

Action Mailer Not delivering Emails - MailCatcher and sendmail

我正在使用 Rails 5. 我在 config/environments/development.rb 和 config/environments/staging.rb.

中有以下配置

config/environments/development.rb

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

当我调用发送电子邮件的方法时,我得到以下输出。

Rendering mailer/consolidated_s3_storage_report.html.erb
Rendered mailer/consolidated_s3_storage_report.html.erb (0.4ms)
Mailer#consolidated_s3_storage_report: processed outbound mail in 17668.1ms
 => #<Mail::Message:86763960, Multipart: true, Headers: <From: mcds@sheridan.com>, <To: mcds.support@sheridan.com>, <Subject: 2017 July - S3 Storage Report>, <Mime-Version: 1.0>, <Content-Type: multipart/mixed; boundary="--==_mimepart_595c962cc36fb_1be1b2198436941"; charset=UTF-8>>

但是电子邮件没有发送到我的 gmail。 'from' 地址是 'default from',所有其他电子邮件都是从该地址发送的。请说明为什么我的电子邮件未送达。

您似乎在使用 Mailcatcher。 Mailcatcher 不投递邮件,它是为了防止邮件投递到实际的 To 电子邮件地址,但可以让您检查邮件的框架是否正确。开发人员在开发环境中使用 Mailcatcher 来查看电子邮件是否按照他们期望的方式呈现,而不会向 To 电子邮件持有者发送垃圾邮件。

发送到 Mailcatcher 的所有电子邮件都可以在 Web 界面中查看。在你的电脑上访问http://localhost:1080,你应该可以在开发环境中看到你到目前为止发送的所有邮件。

以下是发送邮件到gmail的配置:

config/environments/development.rb

config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp

config.action_mailer.smtp_settings = {
      :address => "smtp.gmail.com",
      :port => 587,
      :domain => "gmail.com",
      :user_name => "user@gmail.com", #your gmail id
      :password => "password", #your gmail password
      :authentication => "plain",
      :enable_starttls_auto => true
}