设计确认后发送欢迎电子邮件

时间:2018-08-15 00:13:03

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

我正在使用Rails 5.2和devise 4.4.3,我的工作可以确认,但是,我正在尝试这样做,以便当用户确认其帐户时,他们会收到另一封欢迎他们访问该网站的电子邮件。

注册后,可以通过单击电子邮件中的链接来进行确认电子邮件的发送和确认,但是我希望发送的欢迎电子邮件当前未发送。

我拥有的代码是这样的,我生成了一个UserMailer并完成了以下操作

user.rb模型

class User < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable, :confirmable,
         :recoverable, :rememberable, :trackable, :validatable

  has_one_attached :avatar

  def confirm!
    welcome_email
    super
  end

  protected

  def welcome_email
    UserMailer.welcome_email(self).deliver
  end
end

views/user_mailer/welcome_email.html.erb

<h2>Welcome <%= @user.email %></h2>

mailers/user_mailer.rb

class UserMailer < ApplicationMailer
  def welcome_email(user)
    @user = user
    mail(to: @user.email, subject: "Welcome! You are awesome!")
  end
end

2 个答案:

答案 0 :(得分:0)

您可以使用after_confirmation回调,而不是尝试覆盖确认。

def after_confirmation
  UserMailer.welcome_email(self).deliver
end

答案 1 :(得分:0)

  def after_confirmation
    UserMailer.with(user: @user, password: @user.password).welcome_email.deliver_later
  end