我在我的Rails应用程序中使用Devise,并发送电子邮件确认,密码重置和密码更改通知。
我想知道如何将不同的图像传递到每封电子邮件中,这样我就不需要将大量的HTML传递给布局了。理想情况下,如果可能的话,我想将图像传递给布局,也许我需要在控制器中执行此操作?
如果用户只更新现有的电子邮件,我该如何发送不同的电子邮件?目前,设计发送相同的确认电子邮件。
最后,如果他们最初确认了自己的帐户,我将如何发送欢迎电子邮件,而不是仅仅更新他们的电子邮件?
非常感谢所有帮助,谢谢
答案 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/
中为每个方法创建所需的视图:
实际上,您可以创建任何您喜欢的模板。
希望这会有所帮助。