设计和确认电子邮件

时间:2016-07-27 09:29:33

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

我在我的Rails应用程序中使用Devise,并发送电子邮件确认,密码重置和密码更改通知。

  • 我想知道如何将不同的图像传递到每封电子邮件中,这样我就不需要将大量的HTML传递给布局了。理想情况下,如果可能的话,我想将图像传递给布局,也许我需要在控制器中执行此操作?

  • 如果用户只更新现有的电子邮件,我该如何发送不同的电子邮件?目前,设计发送相同的确认电子邮件。

  • 最后,如果他们最初确认了自己的帐户,我将如何发送欢迎电子邮件,而不是仅仅更新他们的电子邮件?

非常感谢所有帮助,谢谢

1 个答案:

答案 0 :(得分:2)

您可以覆盖设计邮件以满足您的要求。

首先创建DeviseMailer

# app/mailers/devise/mailer.eb
if defined?(ActionMailer)
  class Devise::Mailer < Devise.parent_mailer.constantize
    include Devise::Mailers::Helpers

    def confirmation_instructions(record, token, opts = {})
      @token = token
      if record.pending_reconfirmation?
        devise_mail(record, :reconfirmation_instructions, opts)
      else
        devise_mail(record, :confirmation_instructions, opts)
      end
    end

    def reset_password_instructions(record, token, opts = {})
      @token = token
      devise_mail(record, :reset_password_instructions, opts)
    end

    def unlock_instructions(record, token, opts = {})
      @token = token
      devise_mail(record, :unlock_instructions, opts)
    end
  end
end

然后在app/views/devise/mailer/中为每个方法创建所需的视图:

  • reconfirmation_instructions,将在用户更改电子邮件时调用
  • confirmation_instructions,将在用户确认发送电子邮件时被调用
  • unlock_instructions,帐户被锁定时
  • reset_instructions,密码重置

实际上,您可以创建任何您喜欢的模板。

希望这会有所帮助。