设计确认后发送欢迎邮件
Devise sending welcome email after confirmation
我正在使用 rails 5.2 和设计 4.4.3,我可以确认工作,但是,我正在尝试使用它,以便当用户确认他们的帐户时,他们会收到另一封欢迎他们的电子邮件网站。
注册时会发送确认电子邮件,点击电子邮件中的 link 即可进行确认,但我希望在此之后发送的欢迎电子邮件目前未发送。
我的代码是这样的,我生成了一个 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
您可以使用 after_confirmation 回调而不是尝试覆盖确认。
def after_confirmation
UserMailer.welcome_email(self).deliver
end
def after_confirmation
UserMailer.with(user: @user, password: @user.password).welcome_email.deliver_later
end
我正在使用 rails 5.2 和设计 4.4.3,我可以确认工作,但是,我正在尝试使用它,以便当用户确认他们的帐户时,他们会收到另一封欢迎他们的电子邮件网站。
注册时会发送确认电子邮件,点击电子邮件中的 link 即可进行确认,但我希望在此之后发送的欢迎电子邮件目前未发送。
我的代码是这样的,我生成了一个 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
您可以使用 after_confirmation 回调而不是尝试覆盖确认。
def after_confirmation
UserMailer.welcome_email(self).deliver
end
def after_confirmation
UserMailer.with(user: @user, password: @user.password).welcome_email.deliver_later
end