refactor(email): share build/deliver skeleton across join emails

This commit is contained in:
Moritz 2026-06-16 15:10:03 +02:00 committed by moritz
parent 1adf6aa664
commit e66fb5d3d9
4 changed files with 61 additions and 65 deletions

View file

@ -6,15 +6,9 @@ defmodule MvWeb.Emails.JoinAlreadyPendingEmail do
Used for anti-enumeration: the UI shows the same success message; only the email
informs the recipient. Uses the unified email layout.
"""
use Phoenix.Swoosh,
view: MvWeb.EmailsView,
layout: {MvWeb.EmailLayoutView, "layout.html"}
use MvWeb, :verified_routes
import Swoosh.Email
use Gettext, backend: MvWeb.Gettext, otp_app: :mv
alias Mv.Mailer
alias MvWeb.Emails.JoinEmail
@doc """
Sends the "application already under review" notice to the given address.
@ -24,20 +18,6 @@ defmodule MvWeb.Emails.JoinAlreadyPendingEmail do
def send(email_address) when is_binary(email_address) do
subject = gettext("Membership application already under review")
assigns = %{
subject: subject,
app_name: Mailer.mail_from() |> elem(0),
locale: Gettext.get_locale(MvWeb.Gettext)
}
email =
new()
|> from(Mailer.mail_from())
|> to(email_address)
|> subject(subject)
|> put_view(MvWeb.EmailsView)
|> render_body("join_already_pending.html", assigns)
Mailer.deliver(email, Mailer.smtp_config())
JoinEmail.deliver(email_address, "join_already_pending.html", subject)
end
end