Heroku 日志确认正在发送电子邮件,但电子邮件未显示在邮箱中(仅限生产环境)

Heroku logs confirm an email is being sent, but emails do not show up in mail box (production only)

在开发环境中提交表单后,应用程序会向我的电子邮件地址发送一封电子邮件。在生产环境中,Heroku 日志报告正在发送电子邮件,但是当我检查邮箱时,电子邮件不存在。这是我的配置:

application.yml

GMAIL_USERNAME: "christopherpelnar@gmail.com"
GMAIL_PASSWORD: "sevenmississippi"

user_mailer.rb

class UserMailer < ApplicationMailer
  default from: "christopherpelnar@gmail.com"

  def customer_email(message)
    @message = message
    mail(to: "christopherpelnar@gmail.com", subject: "Message from your website" )
  end

end

messages_controller.rb

  def create
    @message = Message.new(message_params)
    if @message.save
      UserMailer.customer_email(@message).deliver_now
      redirect_to '/message_sent'
    else
      redirect_to '/'
    end
  end

production.rb

config.action_mailer.default_url_options = { :host => 'stormy-wildwood-29407.herokuapp.com' }
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = false
config.action_mailer.default :charset => "utf-8"
config.action_mailer.smtp_settings = {
  address: "smtp.gmail.com",
  port: 587,
  domain: "gmail.com",
  authentication: "plain",
  enable_starttls_auto: true,
  user_name: ENV["GMAIL_USERNAME"],
  password: ENV["GMAIL_PASSWORD"]
}

Heroku 日志

2016-05-22: UserMailer#customer_email: processed outbound mail in 238.2ms
2016-05-22: Sent mail to christopherpelnar@gmail.com (158.2ms)
2016-05-22:
2016-05-22: Date: Sun, 22 May 2016 09:43:29 +0000
2016-05-22: From: christopherpelnar@gmail.com
2016-05-22: To: christopherpelnar@gmail.com
2016-05-22: Message-ID: <17f4181751_3.mail>
2016-05-22: Subject: Message from your website
2016-05-22: Mime-Version: 1.0
2016-05-22: Content-Type: text/html;
2016-05-22:  charset=UTF-8
2016-05-22: Content-Transfer-Encoding: 7bit

问题仅在生产中,通过 localhost:3000

发送没有问题

问题出在 Heroku 的环境变量中,因为在创建 Heroku 应用程序后,环境变量的设置与文件 application.yml 中的设置不完全相同。例如,要设置用户名,您应该 运行 在控制台中使用此命令:

$ heroku config:add GMAIL_USERNAME=myname@gmail.com

可在此处找到更多相关信息:Setting Environment Variables on Heroku

编码愉快! ;)