使用Sendgrid设计自定义邮件程序

时间:2016-04-06 13:20:30

标签: ruby-on-rails ruby devise

我想使用Sendgrid模板在用户注册我的网站时向他们发送欢迎电子邮件。我已经检查过:Devise's How-to Use customer mailer并且已经完成了前几个步骤,但是,由于我需要能够输入一些自定义信息和替换,因此我坚持放置confirmation_instructions方法的位置传递的变量。我也在使用设计生成的控制器controllers/users/...

这是我到目前为止所做的:

自定义类:models / devise_mailer.rb

class DeviseMailer < Devise::Mailer
  helper :application
  include Devise::Controllers::UrlHelpers
  default template_path: 'devise/mailer'
end

配置/初始化/ devise.rb

添加:config.mailer = "DeviseMailer"

现在从这里开始,我应该做类似下面的事情,但我不知道该把它放在哪里。我需要制作自定义控制器吗?如果是这样,我如何确保新用户注册使用该方法?:

def confirmation_instructions(record, token, opts={})
  headers["Custom-header"] = "Bar"
  super
end

我离开这里了吗?

1 个答案:

答案 0 :(得分:1)

把它放在这里:

class DeviseMailer < Devise::Mailer
  helper :application
  include Devise::Controllers::UrlHelpers
  default template_path: 'devise/mailer'

  def self.confirmation_instructions(record, token, opts={})
    new(:confirmation_instructions, record, token, opts)
  end
end

(注意改变方法)

然后从任何控制器中随意调用它:

current_user.send_confirmation_instructions