当用户通过Devise注册时,我是否需要创建一个单独的邮件程序来复制自己?

AKW*_*KWF 3 actionmailer devise ruby-on-rails-3

我在Rails 3应用程序中实现了Devise,具有:registerable和:confirmmable选项.用户收到确认电子邮件,没问题.

但是,当一个人注册或确认时,我想向另一个地址发送一封额外的电子邮件.我可能会使用Observer模式.

但是,我可以使用相同的邮件程序,无论是什么/在哪里,Devise使用,或者我必须创建另一个邮件?

Jam*_*ett 5

如果您的模型上有一个(例如用户),Devise将调用'headers_for'方法.

我没有使用Observer,但是我将此方法添加到我的User类中以添加密件抄送地址并覆盖主题行:

  def headers_for(action)
    if action == :confirmation_instructions
      { bcc: "sent-mail@company.com", subject: "Welcome to the App!" }
    else
      {}
    end
  end
Run Code Online (Sandbox Code Playgroud)

设计然后将这些合并到它的默认值.

我通过阅读Devise的源代码来解决这个问题.

请参阅:https://github.com/plataformatec/devise/blob/master/app/mailers/devise/mailer.rb#L42