View Source Pow.Phoenix.Mailer.Mail (Pow v1.0.27)

Module that renders html and text version of e-mails.


Custom layout

By default no layout is used to render the templates. You can set :pow_mailer_layout in conn.private the same way as you set :phoenix_layout to render a layout for the template.

This is how you can set the mailer layout:

defmodule MyAppWeb.Router do
  # ...

  pipeline :pow_email_layout do
    plug :put_pow_mailer_layout, {MyAppWeb.LayoutView, :email}

  # ...

  scope "/" do
    pipe_through [:browser, :pow_email_layout]


  # ...

  defp put_pow_mailer_layout(conn, layout), do: put_private(conn, :pow_mailer_layout, layout)

You can use atom or binary as template. If a binary is used then only format that it ends with will be used, e.g. using "email.html" will result in no text layout being used.

Link to this section Summary


Returns a populated %Pow.Phoenix.Mailer.Mail{} map.

Link to this section Types

@type t() :: %Pow.Phoenix.Mailer.Mail{
  assigns: term(),
  html: term(),
  subject: term(),
  text: term(),
  user: term()

Link to this section Functions

Link to this function

new(conn, user, arg, assigns)

View Source
@spec new(Plug.Conn.t(), map(), {module(), atom()}, Keyword.t()) :: t()

Returns a populated %Pow.Phoenix.Mailer.Mail{} map.

If the configuration has :web_mailer_module, it will be used to find the template view module to call.