defmodule Mobilizon.Web.Email.Mailer do @moduledoc """ Mobilizon Mailer. """ use Swoosh.Mailer, otp_app: :mobilizon alias Mobilizon.Service.ErrorReporting.Sentry require Logger @spec send_email(Swoosh.Email.t()) :: {:ok, term} | {:error, term} def send_email(email) do Logger.debug( "Mailer options #{inspect(Keyword.drop(Application.get_env(:mobilizon, Mobilizon.Web.Email.Mailer), [:tls_options]))}" ) Logger.debug("Sending mail, #{inspect(email)}") res = Mobilizon.Web.Email.Mailer.deliver(email) Logger.debug("Return from sending mail #{inspect(res)}") res rescue error -> Sentry.capture_exception(error, stacktrace: __STACKTRACE__, extra: %{extra: "Error while sending email"} ) reraise error, __STACKTRACE__ end end