mirror of
https://github.com/philomena-dev/philomena.git
synced 2024-12-18 15:08:00 +01:00
Add RFC2822 date header
This commit is contained in:
parent
113c01c7d5
commit
81f9302206
2 changed files with 28 additions and 16 deletions
|
@ -1,9 +1,35 @@
|
||||||
defmodule Philomena.Mailer do
|
defmodule Philomena.Mailer do
|
||||||
use Swoosh.Mailer, otp_app: :philomena
|
use Swoosh.Mailer, otp_app: :philomena
|
||||||
|
alias Swoosh.Email
|
||||||
|
|
||||||
@spec deliver_later(Swoosh.Email.t()) :: {:ok, Swoosh.Email.t()}
|
@spec deliver_later(Email.t()) :: {:ok, Email.t()}
|
||||||
def deliver_later(mail) do
|
def deliver_later(mail) do
|
||||||
Task.Supervisor.start_child(Philomena.AsyncEmailSupervisor, fn -> deliver(mail) end)
|
Task.Supervisor.start_child(Philomena.AsyncEmailSupervisor, fn -> deliver(mail) end)
|
||||||
{:ok, mail}
|
{:ok, mail}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@spec format_message(Email.t()) :: Email.t()
|
||||||
|
def format_message(mail) do
|
||||||
|
mail
|
||||||
|
|> Email.from({"noreply", mailer_address()})
|
||||||
|
|> Email.header("Message-ID", rfc2822_message_id())
|
||||||
|
|> Email.header("Date", rfc2822_date())
|
||||||
|
end
|
||||||
|
|
||||||
|
defp rfc2822_message_id do
|
||||||
|
id =
|
||||||
|
:crypto.strong_rand_bytes(16)
|
||||||
|
|> Base.encode16()
|
||||||
|
|> String.downcase()
|
||||||
|
|
||||||
|
"<#{id}.#{mailer_address()}>"
|
||||||
|
end
|
||||||
|
|
||||||
|
defp rfc2822_date do
|
||||||
|
Calendar.strftime(DateTime.utc_now(), "%a, %-d %b %Y %H:%M:%S %z")
|
||||||
|
end
|
||||||
|
|
||||||
|
defp mailer_address do
|
||||||
|
Application.get_env(:philomena, :mailer_address)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,27 +5,13 @@ defmodule Philomena.Users.UserNotifier do
|
||||||
defp deliver(to, subject, body) do
|
defp deliver(to, subject, body) do
|
||||||
Email.new(
|
Email.new(
|
||||||
to: {to, to},
|
to: {to, to},
|
||||||
from: {"noreply", mailer_address()},
|
|
||||||
subject: subject,
|
subject: subject,
|
||||||
text_body: body
|
text_body: body
|
||||||
)
|
)
|
||||||
|> Email.header("Message-ID", message_id())
|
|> Mailer.format_message()
|
||||||
|> Mailer.deliver_later()
|
|> Mailer.deliver_later()
|
||||||
end
|
end
|
||||||
|
|
||||||
defp message_id do
|
|
||||||
id =
|
|
||||||
:crypto.strong_rand_bytes(16)
|
|
||||||
|> Base.encode16()
|
|
||||||
|> String.downcase()
|
|
||||||
|
|
||||||
"<#{id}.#{mailer_address()}>"
|
|
||||||
end
|
|
||||||
|
|
||||||
defp mailer_address do
|
|
||||||
Application.get_env(:philomena, :mailer_address)
|
|
||||||
end
|
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
Deliver instructions to confirm account.
|
Deliver instructions to confirm account.
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in a new issue