From 00a654285d0773766398fca798016d62c6c5db46 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Fri, 13 Nov 2020 14:02:33 +0100 Subject: [PATCH] Fix email missing headers Close #426 #491 Signed-off-by: Thomas Citharel --- lib/web/email/email.ex | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/web/email/email.ex b/lib/web/email/email.ex index f61395bba..24ab60feb 100644 --- a/lib/web/email/email.ex +++ b/lib/web/email/email.ex @@ -5,8 +5,8 @@ defmodule Mobilizon.Web.Email do use Bamboo.Phoenix, view: Mobilizon.Web.EmailView + alias Ecto.UUID alias Mobilizon.Config - alias Mobilizon.Web.EmailView @spec base_email(keyword()) :: Bamboo.Email.t() @@ -17,8 +17,27 @@ defmodule Mobilizon.Web.Email do |> new_email() |> from({Config.instance_name(), Config.instance_email_from()}) |> put_header("Reply-To", Config.instance_email_reply_to()) + |> put_header("Date", date()) + |> put_header("Message-Id", message_id()) |> assign(:instance, instance) |> put_html_layout({EmailView, "email.html"}) |> put_text_layout({EmailView, "email.text"}) end + + # Generating an UUID randomly causes Bamboo.Test.assert_delivered_email/1 to fail + defp message_id do + if Application.fetch_env!(:mobilizon, :env) == :test do + "TEST_ENV_MESSAGE_ID@#{Config.instance_hostname()}" + else + "#{UUID.generate()}@#{Config.instance_hostname()}" + end + end + + defp date do + if Application.fetch_env!(:mobilizon, :env) == :test do + "REMOVED FOR TESTING" + else + Timex.format!(Timex.local(), "{WDshort}, {D} {Mshort} {YYYY} {h24}:{m}:{s} {Z}") + end + end end