diff options
author | Mark Felder <feld@feld.me> | 2021-02-04 15:16:50 -0600 |
---|---|---|
committer | Mark Felder <feld@feld.me> | 2021-02-04 15:16:50 -0600 |
commit | e945ccc91bbc7c3479e842feb276c5efff30eed2 (patch) | |
tree | c72b7fb89e7575fb8c95b6c89255e28f585ef202 | |
parent | 2956c21a55518f5f6f6648cc2d25f2b2114dc20f (diff) | |
download | pleroma-e945ccc91bbc7c3479e842feb276c5efff30eed2.tar.gz |
Add a registration email that only sends if no other emails (welcome, approval, confirmation) are enabled
-rw-r--r-- | lib/pleroma/emails/user_email.ex | 14 | ||||
-rw-r--r-- | lib/pleroma/user.ex | 18 |
2 files changed, 32 insertions, 0 deletions
diff --git a/lib/pleroma/emails/user_email.ex b/lib/pleroma/emails/user_email.ex index 0c00069e2..a5233f373 100644 --- a/lib/pleroma/emails/user_email.ex +++ b/lib/pleroma/emails/user_email.ex @@ -106,6 +106,20 @@ defmodule Pleroma.Emails.UserEmail do |> html_body(html_body) end + def successful_registration_email(user) do + html_body = """ + <h3>Hello @#{user.nickname}</h3> + <p>Your account at #{instance_name()} has been registered successfully.</p> + <p>No further action is required to activate your account.</p> + """ + + new() + |> to(recipient(user)) + |> from(sender()) + |> subject("Account registered on #{instance_name()}") + |> html_body(html_body) + end + @doc """ Email used in digest email notifications Includes Mentions and New Followers data diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 7a7956c8f..1d7cb22b2 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -814,6 +814,7 @@ defmodule Pleroma.User do with {:ok, user} <- autofollow_users(user), {:ok, _} <- autofollowing_users(user), {:ok, user} <- set_cache(user), + {:ok, _} <- maybe_send_registration_email(user), {:ok, _} <- maybe_send_welcome_email(user), {:ok, _} <- maybe_send_welcome_message(user), {:ok, _} <- maybe_send_welcome_chat_message(user) do @@ -892,6 +893,23 @@ defmodule Pleroma.User do user end + @spec maybe_send_registration_email(User.t()) :: {:ok, :enqueued | :noop} + defp maybe_send_registration_email(%User{email: email} = user) when is_binary(email) do + with false <- User.WelcomeEmail.enabled?(), + false <- Config.get([:instance, :account_activation_required], false), + false <- Config.get([:instance, :account_approval_required], false) do + user + |> Pleroma.Emails.UserEmail.successful_registration_email() + + {:ok, :enqueued} + else + _ -> + {:ok, :noop} + end + end + + defp maybe_send_registration_email(_), do: {:ok, :noop} + def needs_update?(%User{local: true}), do: false def needs_update?(%User{local: false, last_refreshed_at: nil}), do: true |