Hash :
f18846ed
Author :
Thomas de Grivel
Date :
2021-12-28T07:13:44
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
defmodule Kmxgit.UserManager.UserNotifier do
import Swoosh.Email
alias Kmxgit.Mailer
# Delivers the email using the application mailer.
defp deliver(recipient, subject, body) do
email =
new()
|> to(recipient)
|> from({"kmxgit", Application.fetch_env!(:kmxgit, :mail_from)})
|> subject(subject)
|> text_body(body)
with {:ok, _metadata} <- Mailer.deliver(email) do
{:ok, email}
end
end
@doc """
Deliver instructions to confirm account.
"""
def deliver_confirmation_instructions(user, url) do
deliver(user.email, "Confirmation instructions", """
Hi #{user.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
@doc """
Deliver instructions to reset a user password.
"""
def deliver_reset_password_instructions(user, url) do
deliver(user.email, "Reset password instructions", """
Hi #{user.email},
You can reset your password by visiting the URL below:
#{url}
If you didn't request this change, please ignore this.
""")
end
@doc """
Deliver instructions to update a user email.
"""
def deliver_update_email_instructions(user, url) do
deliver(user.email, "Update email instructions", """
Hi #{user.email},
You can change your email by visiting the URL below:
#{url}
If you didn't request this change, please ignore this.
""")
end
def deliver_login_changed_email(user, old_login, new_login) do
deliver(user.email, "Your login was changed", """
Hi #{user.email},
Your login was changed from #{old_login} to #{new_login}.
If you didn't request this change, please reply to this e-mail.
""")
end
defp email_changed_email_body(email, old, new) do
"""
Hi #{email},
Your e-mail address was changed from #{old} to #{new}.
If you didn't request this change, please reply to this e-mail.
"""
end
def deliver_email_changed_email(old, new) do
subject = "Your email address was changed"
deliver(old, subject, email_changed_email_body(old, old, new))
deliver(new, subject, email_changed_email_body(new, old, new))
end
def deliver_password_changed_email(user) do
deliver(user.email, "Your password was changed", """
Hi #{user.email},
Your password was changed.
If you didn't request this change, please reply to this e-mail.
""")
end
end