您好我正在ruby on rails上进行用户注册申请。 但ActionMailer进程忽略了我的代码。 当我尝试使用时 UserMailer :: confirmation_email.deliver 在rails s上,我可以发送电子邮件。 但是当我使用下面的流程时,UserMailer :: confirmation_email会被忽略。 你知道怎么解决吗?
user_controller.rb
class UsersController < ApplicationController
skip_before_action :verify_authenticity_token
def create
user = User.new(user_params)
result = Users::RegisterService.register_user(user)
render result
end
end
register_service.rb
module Users
module RegisterService
module_function
def register_user(user = {})
if user.save
UserMailer::confirmation_email(user)
result = { json: {status: 'User created successfully'}, status: :created }
else
result = { json: { errors: user.errors.full_messages }, status: :bad_request }
end
return result
end
end
end
user_mailer.rb
class UserMailer < ApplicationMailer
default from: 'email@gmail.com'
def confirmation_email(user)
@user = user
@url = 'http://192.16.8.33.10/user/confirm?confirmation_token=' + @user.confirmation_token
mail(
to: @user.email,
subject: 'Welcome to My Awesome Site',
template_name: 'user_confirm'
)
end
end
答案 0 :(得分:0)
致电deliver_now
立即发送电子邮件,deliver_later
以异步方式发送电子邮件。
UserMailer::confirmation_email(user).deliver_now