defmodule Pleroma.Emails.UserEmail do
@moduledoc "User emails"
- use Phoenix.Swoosh, view: Pleroma.Web.EmailView, layout: {Pleroma.Web.LayoutView, :email}
-
alias Pleroma.Config
- alias Pleroma.HTML
alias Pleroma.User
alias Pleroma.Web.Endpoint
alias Pleroma.Web.Router
+ import Swoosh.Email
+ import Phoenix.Swoosh, except: [render_body: 3]
import Pleroma.Config.Helpers, only: [instance_name: 0, sender: 0]
+ def render_body(email, template, assigns \\ %{}) do
+ email
+ |> put_new_layout({Pleroma.Web.LayoutView, :email})
+ |> put_new_view(Pleroma.Web.EmailView)
+ |> Phoenix.Swoosh.render_body(template, assigns)
+ end
+
defp recipient(email, nil), do: email
defp recipient(email, name), do: {name, email}
defp recipient(%User{} = user), do: recipient(user.email, user.name)
|> from(sender())
|> subject("Password reset")
|> html_body(html_body)
- |> text_body(HTML.strip_tags(html_body))
end
def user_invitation_email(
|> from(sender())
|> subject("Invitation to #{instance_name()}")
|> html_body(html_body)
- |> text_body(HTML.strip_tags(html_body))
end
def account_confirmation_email(user) do
|> from(sender())
|> subject("#{instance_name()} account confirmation")
|> html_body(html_body)
- |> text_body(HTML.strip_tags(html_body))
end
def approval_pending_email(user) do
|> from(sender())
|> subject("Your account is awaiting approval")
|> html_body(html_body)
- |> text_body(HTML.strip_tags(html_body))
end
def successful_registration_email(user) do
html_body = """
- <h3>Hello @#{user.nickname}</h3>
+ <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>
"""
|> from(sender())
|> subject("Account registered on #{instance_name()}")
|> html_body(html_body)
- |> text_body(HTML.strip_tags(html_body))
end
@doc """
|> from(sender())
|> subject("Your account archive is ready")
|> html_body(html_body)
- |> text_body(HTML.strip_tags(html_body))
end
end