X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Femails%2Fadmin_email.ex;h=5f23345f7b9434ff033d8f6d5092da98fde6815e;hb=cf367fdbd53b50f4324a01ddabdc0520cd787321;hp=9b20c7e08197f23425612b4b79b54fbac0302933;hpb=896f8580dd7eccd724c9f1cf1436d36ce5c7a75a;p=akkoma diff --git a/lib/pleroma/emails/admin_email.ex b/lib/pleroma/emails/admin_email.ex index 9b20c7e08..5fe74e2f7 100644 --- a/lib/pleroma/emails/admin_email.ex +++ b/lib/pleroma/emails/admin_email.ex @@ -1,20 +1,34 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2021 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.HTML alias Pleroma.Web.Router.Helpers - defp instance_config, do: Pleroma.Config.get(:instance) + defp instance_config, do: Config.get(:instance) defp instance_name, do: instance_config()[:name] - defp instance_email, do: instance_config()[:email] - defp user_url(user) do - Helpers.o_status_url(Pleroma.Web.Endpoint, :feed_redirect, user.nickname) + defp instance_notify_email do + Keyword.get(instance_config(), :notify_email, instance_config()[:email]) + 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 +40,19 @@ 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" => id} when is_binary(id) -> + "
  • #{id}
  • " + + id when is_binary(id) -> + "
  • #{id}
  • " end) |> Enum.join("\n") @@ -47,17 +68,32 @@ defmodule Pleroma.AdminEmail do end html_body = """ -

    Reported by: #{reporter.nickname}

    -

    Reported Account: #{account.nickname}

    +

    Reported by: #{reporter.nickname}

    +

    Reported Account: #{account.nickname}

    #{comment_html} #{statuses_html} +

    + View Reports in AdminFE """ 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 + + def new_unapproved_registration(to, account) do + html_body = """ +

    New account for review: @#{account.nickname}

    +
    #{HTML.strip_tags(account.registration_reason)}
    + Visit AdminFE + """ + + new() + |> to({to.name, to.email}) + |> from({instance_name(), instance_notify_email()}) + |> subject("New account up for review on #{instance_name()} (@#{account.nickname})") + |> html_body(html_body) + end end