emails: send welcome mail on signup.

This commit is contained in:
evazion
2020-03-14 19:18:28 -05:00
parent d860fab7f5
commit 0ef9d6e417
5 changed files with 34 additions and 0 deletions

View File

@@ -65,6 +65,7 @@ class UsersController < ApplicationController
@user.save
if @user.errors.empty?
session[:user_id] = @user.id
UserMailer.welcome_user(@user).deliver_later
else
flash[:notice] = "Sign up failed: #{@user.errors.full_messages.join("; ")}"
end

View File

@@ -16,4 +16,9 @@ class UserMailer < ApplicationMailer
@user = user
mail to: @user.email_with_name, subject: "Confirm your email address"
end
def welcome_user(user)
@user = user
mail to: @user.email_with_name, subject: "Welcome to #{Danbooru.config.app_name}! Confirm your email address"
end
end

View File

@@ -0,0 +1,19 @@
<!doctype html>
<html>
<body>
<h2>Hi <%= @user.name %>,</h2>
<p>
Welcome to <%= Danbooru.config.app_name %>! Click the link below to verify your email address.
</p>
<p>
<%= link_to "Verify email address", verify_user_email_url(@user, email_verification_key: Danbooru::MessageVerifier.new(:email_verification_key).generate(@user.email_address.id)) %>
</p>
<p>
By verifying your email address, you can receive site notifications and you can
recover your account if you ever forget your password.
</p>
</body>
</html>

View File

@@ -119,6 +119,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
assert_redirected_to User.last
assert_equal("xxx", User.last.name)
assert_no_emails
end
should "create a user with a valid email" do
@@ -128,6 +129,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
assert_redirected_to User.last
assert_equal("xxx", User.last.name)
assert_equal("test@gmail.com", User.last.email_address.address)
assert_enqueued_email_with UserMailer, :welcome_user, args: [User.last]
end
should "not create a user with an invalid email" do
@@ -135,7 +137,9 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
assert_no_difference("User.count") do
post users_path, params: { user: user_params }
assert_response :success
assert_no_emails
end
end

View File

@@ -13,4 +13,9 @@ class UserMailerPreview < ActionMailer::Preview
user = User.find(params[:id])
UserMailer.email_change_confirmation(user)
end
def welcome_user
user = User.find(params[:id])
UserMailer.welcome_user(user)
end
end