Rails 4中的ActionMailer:无法修改'来自'地址

时间:2014-07-15 06:50:15

标签: ruby-on-rails actionmailer

这似乎是一个非常奇怪的问题,在尝试从多个角度解决它之后,我有点卡住了。

设置非常简单,它只是一个联系表单,您可以在其中输入您的姓名,电子邮件地址,电子邮件主题和正文。此电子邮件将发送给主持人(让我们称之为dfnd@gmail.com),它应该是用户在表单中填写的电子邮件地址。

为setup_mail.rb

ActionMailer::Base.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :domain               => "gmail.com",
  :user_name            => ENV['ACTION_MAILER_NAME'],
  :password             => ENV["ACTION_MAILER_PASSWORD"],
  :authentication       => "plain",
  :enable_starttls_auto => true
}

ActionMailer::Base.default_url_options[:host] = ENV['ACTION_MAILER_HOST']

notifications_mailer.rb

class NotificationsMailer < ActionMailer::Base

  def new_message(message)
    @message = message
    mail(to: "dfnd@gmail.com", subject: "Contact Form: #{message.subject}")
  end

end

pages_controller.rb

 def create
    @message = Message.new(params[:message])

    if @message.valid?
      NotificationsMailer.new_message(@message).deliver
      redirect_to(root_path)
    else
      flash[:error] = "Please fill in the required fields appropriately."
      redirect_to contact_path
    end
  end

&#39;来自&#39;被卡住的电子邮件地址&#39;在我的应用程序中 testlove@gmail.com(这是ACTION_MAILER_NAME环境变量)。无论我在哪里改变&#39;来自&#39;或默认&#39;来自&#39;我的rails应用程序中的电子邮件地址,它始终是testlove@gmail.com。

即使我在developer.rb中设置默认值,如下所示:

config.action_mailer.default_options = {from: 'no-reply@example.com'}
&#39>来自&#39;电子邮件地址仍然是testlove@gmail.com

更奇怪的是,如果我查看我的服务器日志,它会显示正确的电子邮件地址,但是当我打开实际的电子邮件时,它又一次是testlove@gmail.com。 / p>

对此有何见解?我已经很多次重启了我的服务器,我很困惑为什么会发生这种情况。

1 个答案:

答案 0 :(得分:3)

使用Gmail SMTP设置无法完成此操作。

您应该使用自己的邮件设置。看看Sendgrid