Current section

Files

Jump to
phoenix priv templates phx.gen.auth notifier.ex
Raw

priv/templates/phx.gen.auth/notifier.ex

defmodule <%= inspect context.module %>.<%= inspect schema.alias %>Notifier do
import Swoosh.Email
alias <%= inspect context.base_module %>.Mailer
alias <%= inspect context.module %>.<%= inspect schema.alias %>
# Delivers the email using the application mailer.
defp deliver(recipient, subject, body) do
email =
new()
|> to(recipient)
|> from({"<%= inspect context.base_module %>", "contact@example.com"})
|> subject(subject)
|> text_body(body)
with {:ok, _metadata} <- Mailer.deliver(email) do
{:ok, email}
end
end
@doc """
Deliver instructions to update a <%= schema.singular %> email.
"""
def deliver_update_email_instructions(<%= schema.singular %>, url) do
deliver(<%= schema.singular %>.email, "Update email instructions", """
==============================
Hi #{<%= schema.singular %>.email},
You can change your email by visiting the URL below:
#{url}
If you didn't request this change, please ignore this.
==============================
""")
end
@doc """
Deliver instructions to log in with a magic link.
"""
def deliver_login_instructions(<%= schema.singular %>, url) do
case <%= schema.singular %> do
%<%= inspect schema.alias %>{confirmed_at: nil} -> deliver_confirmation_instructions(<%= schema.singular %>, url)
_ -> deliver_magic_link_instructions(<%= schema.singular %>, url)
end
end
defp deliver_magic_link_instructions(<%= schema.singular %>, url) do
deliver(<%= schema.singular %>.email, "Log in instructions", """
==============================
Hi #{<%= schema.singular %>.email},
You can log into your account by visiting the URL below:
#{url}
If you didn't request this email, please ignore this.
==============================
""")
end
defp deliver_confirmation_instructions(<%= schema.singular %>, url) do
deliver(<%= schema.singular %>.email, "Confirmation instructions", """
==============================
Hi #{<%= schema.singular %>.email},
You can confirm your account by visiting the URL below:
#{url}
If you didn't create an account with us, please ignore this.
==============================
""")
end
end