如何使用自定义Mailer类更改Devise的“from address”?

时间:2014-08-24 00:35:34

标签: ruby-on-rails ruby-on-rails-4 devise devise-confirmable

我有一个处理两个域的Rails应用程序。因此,我需要能够指定哪个电子邮件地址Devise应该发送来自的确认电子邮件。

config/environments/development.rb我有以下设置:

config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address              => "smtp.gmail.com",
    :port                 => 587,
    :domain               => 'localhost',
    :user_name            => 'my_default_email@example.com',
    :password             => 'MyPassword',
    :authentication       => 'plain',
    :enable_starttls_auto => true
  }

我已根据this post中的说明创建了自定义邮件程序。我的自定义邮件程序现在看起来像这样:

class CustomMailer < Devise::Mailer
  helper :application
  include Devise::Controllers::UrlHelpers

  def confirmation_instructions(record, token, opts={})
    opts[:from]     = 'my_custom_email@example.com'
    opts[:reply_to] = 'my_custom_email@example.com'
    super
  end
end

该方法似乎确实被触发了,因为我的服务器日志声明了这一点:

Sent mail to some_customer@example.com (4601.4ms)
Date: Sat, 23 Aug 2014 11:26:51 -0700
From: my_custom_email@example.com
Reply-To: my_custom_email@example.com
To: some_customer@example.com

但是,在客户收件箱中,实际电子邮件会将my_default_email@example.com指定为发件人地址,并仅将my_custom_email@example.com表示为回复地址。

我想我应该为我的自定义电子邮件地址传递更多SMTP选项,但是如何?

0 个答案:

没有答案