目前我正在使用ruby devise gem 2.2.3
。我尝试自定义 confirmation_instructions ,以便使用用户电子邮件添加几个电子邮件ID。
应用程序/邮寄者/ my_devise_mailer.rb
class MyDeviseMailer < Devise::Mailer
include Devise::Mailers::Helpers
def confirmation_instructions(record, opts={})
opts[:to] = "example1@mail.com, example2@mail.com"
super
end
end
配置/初始化/ devise.rb
config.mailer = "MyDeviseMailer"
然后,我在我的控制台中运行了以下内容
user = User.first
MyDeviseMailer.delay.confirmation_instructions(user)
我收到了没有正文消息的输出。 PFA
正确
错误
有谁能告诉我我错过了添加/配置的内容?
答案 0 :(得分:0)
您可以改为创建一个新邮件并修改该邮件的标题:
# app/mailers/my_mailer.rb
class MyMailer < Devise::Mailer
def headers_for(action, opts)
if action == :confirmation_instructions
super.merge!(to: ['example1@mail.com', 'example2@mail.com'])
else
super
end
end
end
然后告诉Devise使用你的邮件:
# config/initializers/devise.rb
config.mailer = MyMailer
答案 1 :(得分:0)
super.merge!"
无效。因为它将替换给定键的值(:to)。但是,要求是添加两个带有'To'的邮件ID。以下要点工作正常。
class MyMailer < Devise::Mailer
include Devise::Mailers::Helpers
def headers_for(action, opts={})
begin
super.merge!(to: [super[:to], 'example1@mail.com', 'example2@mail.com'], template_path: ["devise/mailer"]) if action == :confirmation_instructions
rescue Exception => e
super
end
end
end
快乐编码!!