Create pleroma.email mix task

Closes: https://git.pleroma.social/pleroma/pleroma/issues/1061
This commit is contained in:
Haelwenn (lanodan) Monnier 2020-01-20 13:23:21 +01:00
commit 4eb935be78
No known key found for this signature in database
GPG key ID: D5B7A8E43C997DEE
5 changed files with 116 additions and 0 deletions

View file

@ -0,0 +1,25 @@
defmodule Mix.Tasks.Pleroma.Email do
use Mix.Task
@shortdoc "Simple Email test"
@moduledoc File.read!("docs/administration/CLI_tasks/email.md")
def run(["test" | args]) do
Mix.Pleroma.start_pleroma()
{options, [], []} =
OptionParser.parse(
args,
strict: [
to: :string
]
)
email = Pleroma.Emails.AdminEmail.test_email(options[:to])
{:ok, _} = Pleroma.Emails.Mailer.deliver(email)
Mix.shell().info(
"Test email has been sent to #{inspect(email.to)} from #{inspect(email.from)}"
)
end
end

View file

@ -7,6 +7,7 @@ defmodule Pleroma.Emails.AdminEmail do
import Swoosh.Email
alias Pleroma.Config
alias Pleroma.Web.Router.Helpers
defp instance_config, do: Pleroma.Config.get(:instance)
@ -20,6 +21,19 @@ defmodule Pleroma.Emails.AdminEmail do
Helpers.feed_url(Pleroma.Web.Endpoint, :feed_redirect, user.id)
end
def test_email(mail_to \\ nil) do
html_body = """
<h3>Instance Test Email</h3>
<p>A test email was requested. Hello. :)</p>
"""
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
comment_html =
if comment do