我有一个处理两个域的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选项,但是如何?