X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fpleroma%2Femails%2Fadmin_email.ex;h=55f61024e33e7394319ccd9807bbeacc4c354778;hb=780ac9cedb9a5df96bce763f586779c4297b0f0a;hp=9b20c7e08197f23425612b4b79b54fbac0302933;hpb=5a4e2905fecfd21cf92f6b2844f15f5ee84b33f5;p=akkoma
diff --git a/lib/pleroma/emails/admin_email.ex b/lib/pleroma/emails/admin_email.ex
index 9b20c7e08..55f61024e 100644
--- a/lib/pleroma/emails/admin_email.ex
+++ b/lib/pleroma/emails/admin_email.ex
@@ -1,20 +1,37 @@
# Pleroma: A lightweight social networking server
-# Copyright © 2017-2019 Pleroma Authors
+# Copyright © 2017-2020 Pleroma Authors
# SPDX-License-Identifier: AGPL-3.0-only
-defmodule Pleroma.AdminEmail do
+defmodule Pleroma.Emails.AdminEmail do
@moduledoc "Admin emails"
import Swoosh.Email
+ alias Pleroma.Config
alias Pleroma.Web.Router.Helpers
defp instance_config, do: Pleroma.Config.get(:instance)
defp instance_name, do: instance_config()[:name]
- defp instance_email, do: instance_config()[:email]
+
+ defp instance_notify_email do
+ Keyword.get(instance_config(), :notify_email, instance_config()[:email])
+ end
defp user_url(user) do
- Helpers.o_status_url(Pleroma.Web.Endpoint, :feed_redirect, user.nickname)
+ Helpers.user_feed_url(Pleroma.Web.Endpoint, :feed_redirect, user.id)
+ end
+
+ def test_email(mail_to \\ nil) do
+ html_body = """
+
Instance Test Email
+ A test email was requested. Hello. :)
+ """
+
+ new()
+ |> to(mail_to || Config.get([:instance, :email]))
+ |> from({instance_name(), instance_notify_email()})
+ |> subject("Instance Test Email")
+ |> html_body(html_body)
end
def report(to, reporter, account, statuses, comment) do
@@ -26,12 +43,16 @@ defmodule Pleroma.AdminEmail do
end
statuses_html =
- if length(statuses) > 0 do
+ if is_list(statuses) && length(statuses) > 0 do
statuses_list_html =
statuses
- |> Enum.map(fn %{id: id} ->
- status_url = Helpers.o_status_url(Pleroma.Web.Endpoint, :notice, id)
- "#{status_url}"
+ |> Enum.map(fn
+ %{id: id} ->
+ status_url = Helpers.o_status_url(Pleroma.Web.Endpoint, :notice, id)
+ "#{status_url}"
+
+ id when is_binary(id) ->
+ "#{id}"
end)
|> Enum.join("\n")
@@ -55,8 +76,7 @@ defmodule Pleroma.AdminEmail do
new()
|> to({to.name, to.email})
- |> from({instance_name(), instance_email()})
- |> reply_to({reporter.name, reporter.email})
+ |> from({instance_name(), instance_notify_email()})
|> subject("#{instance_name()} Report")
|> html_body(html_body)
end