Make the filename and module name of Pleroma.Emails.* orthogonal See merge request pleroma/pleroma!1029tags/v1.1.4
@@ -0,0 +1,8 @@ | |||||
# Changelog | |||||
All notable changes to this project will be documented in this file. | |||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). | |||||
## [unreleased] | |||||
### Changed | |||||
- Configuration: move from Pleroma.Mailer to Pleroma.Emails.Mailer |
@@ -413,7 +413,7 @@ config :ueberauth, | |||||
config :pleroma, :auth, oauth_consumer_strategies: oauth_consumer_strategies | config :pleroma, :auth, oauth_consumer_strategies: oauth_consumer_strategies | ||||
config :pleroma, Pleroma.Mailer, adapter: Swoosh.Adapters.Sendmail | |||||
config :pleroma, Pleroma.Emails.Mailer, adapter: Swoosh.Adapters.Sendmail | |||||
config :prometheus, Pleroma.Web.Endpoint.MetricsExporter, path: "/api/pleroma/app_metrics" | config :prometheus, Pleroma.Web.Endpoint.MetricsExporter, path: "/api/pleroma/app_metrics" | ||||
@@ -18,7 +18,7 @@ config :pleroma, Pleroma.Web.Endpoint, | |||||
watchers: [], | watchers: [], | ||||
secure_cookie_flag: false | secure_cookie_flag: false | ||||
config :pleroma, Pleroma.Mailer, adapter: Swoosh.Adapters.Local | |||||
config :pleroma, Pleroma.Emails.Mailer, adapter: Swoosh.Adapters.Local | |||||
# ## SSL Support | # ## SSL Support | ||||
# | # | ||||
@@ -21,7 +21,7 @@ config :pleroma, Pleroma.Upload, filters: [], link_name: false | |||||
config :pleroma, Pleroma.Uploaders.Local, uploads: "test/uploads" | config :pleroma, Pleroma.Uploaders.Local, uploads: "test/uploads" | ||||
config :pleroma, Pleroma.Mailer, adapter: Swoosh.Adapters.Test | |||||
config :pleroma, Pleroma.Emails.Mailer, adapter: Swoosh.Adapters.Test | |||||
# Configure your database | # Configure your database | ||||
config :pleroma, Pleroma.Repo, | config :pleroma, Pleroma.Repo, | ||||
@@ -31,14 +31,14 @@ This filter replaces the filename (not the path) of an upload. For complete obfu | |||||
* `text`: Text to replace filenames in links. If empty, `{random}.extension` will be used. | * `text`: Text to replace filenames in links. If empty, `{random}.extension` will be used. | ||||
## Pleroma.Mailer | |||||
## Pleroma.Emails.Mailer | |||||
* `adapter`: one of the mail adapters listed in [Swoosh readme](https://github.com/swoosh/swoosh#adapters), or `Swoosh.Adapters.Local` for in-memory mailbox. | * `adapter`: one of the mail adapters listed in [Swoosh readme](https://github.com/swoosh/swoosh#adapters), or `Swoosh.Adapters.Local` for in-memory mailbox. | ||||
* `api_key` / `password` and / or other adapter-specific settings, per the above documentation. | * `api_key` / `password` and / or other adapter-specific settings, per the above documentation. | ||||
An example for Sendgrid adapter: | An example for Sendgrid adapter: | ||||
```exs | ```exs | ||||
config :pleroma, Pleroma.Mailer, | |||||
config :pleroma, Pleroma.Emails.Mailer, | |||||
adapter: Swoosh.Adapters.Sendgrid, | adapter: Swoosh.Adapters.Sendgrid, | ||||
api_key: "YOUR_API_KEY" | api_key: "YOUR_API_KEY" | ||||
``` | ``` | ||||
@@ -46,7 +46,7 @@ config :pleroma, Pleroma.Mailer, | |||||
An example for SMTP adapter: | An example for SMTP adapter: | ||||
```exs | ```exs | ||||
config :pleroma, Pleroma.Mailer, | |||||
config :pleroma, Pleroma.Emails.Mailer, | |||||
adapter: Swoosh.Adapters.SMTP, | adapter: Swoosh.Adapters.SMTP, | ||||
relay: "smtp.gmail.com", | relay: "smtp.gmail.com", | ||||
username: "YOUR_USERNAME@gmail.com", | username: "YOUR_USERNAME@gmail.com", | ||||
@@ -317,7 +317,7 @@ Pleroma has the following queues: | |||||
* `federator_outgoing` - Outgoing federation | * `federator_outgoing` - Outgoing federation | ||||
* `federator_incoming` - Incoming federation | * `federator_incoming` - Incoming federation | ||||
* `mailer` - Email sender, see [`Pleroma.Mailer`](#pleroma-mailer) | |||||
* `mailer` - Email sender, see [`Pleroma.Emails.Mailer`](#pleroma-emails-mailer) | |||||
* `transmogrifier` - Transmogrifier | * `transmogrifier` - Transmogrifier | ||||
* `web_push` - Web push notifications | * `web_push` - Web push notifications | ||||
* `scheduled_activities` - Scheduled activities, see [`Pleroma.ScheduledActivities`](#pleromascheduledactivity) | * `scheduled_activities` - Scheduled activities, see [`Pleroma.ScheduledActivities`](#pleromascheduledactivity) | ||||
@@ -2,7 +2,7 @@ | |||||
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> | # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> | ||||
# SPDX-License-Identifier: AGPL-3.0-only | # SPDX-License-Identifier: AGPL-3.0-only | ||||
defmodule Pleroma.AdminEmail do | |||||
defmodule Pleroma.Emails.AdminEmail do | |||||
@moduledoc "Admin emails" | @moduledoc "Admin emails" | ||||
import Swoosh.Email | import Swoosh.Email | ||||
@@ -2,7 +2,7 @@ | |||||
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> | # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> | ||||
# SPDX-License-Identifier: AGPL-3.0-only | # SPDX-License-Identifier: AGPL-3.0-only | ||||
defmodule Pleroma.Mailer do | |||||
defmodule Pleroma.Emails.Mailer do | |||||
use Swoosh.Mailer, otp_app: :pleroma | use Swoosh.Mailer, otp_app: :pleroma | ||||
def deliver_async(email, config \\ []) do | def deliver_async(email, config \\ []) do | ||||
@@ -2,7 +2,7 @@ | |||||
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> | # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> | ||||
# SPDX-License-Identifier: AGPL-3.0-only | # SPDX-License-Identifier: AGPL-3.0-only | ||||
defmodule Pleroma.UserEmail do | |||||
defmodule Pleroma.Emails.UserEmail do | |||||
@moduledoc "User emails" | @moduledoc "User emails" | ||||
import Swoosh.Email | import Swoosh.Email | ||||
@@ -279,8 +279,8 @@ defmodule Pleroma.User do | |||||
if user.info.confirmation_pending && | if user.info.confirmation_pending && | ||||
Pleroma.Config.get([:instance, :account_activation_required]) do | Pleroma.Config.get([:instance, :account_activation_required]) do | ||||
user | user | ||||
|> Pleroma.UserEmail.account_confirmation_email() | |||||
|> Pleroma.Mailer.deliver_async() | |||||
|> Pleroma.Emails.UserEmail.account_confirmation_email() | |||||
|> Pleroma.Emails.Mailer.deliver_async() | |||||
else | else | ||||
{:ok, :noop} | {:ok, :noop} | ||||
end | end | ||||
@@ -450,8 +450,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do | |||||
:ok <- maybe_federate(activity) do | :ok <- maybe_federate(activity) do | ||||
Enum.each(User.all_superusers(), fn superuser -> | Enum.each(User.all_superusers(), fn superuser -> | ||||
superuser | superuser | ||||
|> Pleroma.AdminEmail.report(actor, account, statuses, content) | |||||
|> Pleroma.Mailer.deliver_async() | |||||
|> Pleroma.Emails.AdminEmail.report(actor, account, statuses, content) | |||||
|> Pleroma.Emails.Mailer.deliver_async() | |||||
end) | end) | ||||
{:ok, activity} | {:ok, activity} | ||||
@@ -238,8 +238,13 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do | |||||
!Pleroma.Config.get([:instance, :registrations_open]), | !Pleroma.Config.get([:instance, :registrations_open]), | ||||
{:ok, invite_token} <- UserInviteToken.create_invite(), | {:ok, invite_token} <- UserInviteToken.create_invite(), | ||||
email <- | email <- | ||||
Pleroma.UserEmail.user_invitation_email(user, invite_token, email, params["name"]), | |||||
{:ok, _} <- Pleroma.Mailer.deliver(email) do | |||||
Pleroma.Emails.UserEmail.user_invitation_email( | |||||
user, | |||||
invite_token, | |||||
email, | |||||
params["name"] | |||||
), | |||||
{:ok, _} <- Pleroma.Emails.Mailer.deliver(email) do | |||||
json_response(conn, :no_content, "") | json_response(conn, :no_content, "") | ||||
end | end | ||||
end | end | ||||
@@ -4,10 +4,10 @@ | |||||
defmodule Pleroma.Web.TwitterAPI.TwitterAPI do | defmodule Pleroma.Web.TwitterAPI.TwitterAPI do | ||||
alias Pleroma.Activity | alias Pleroma.Activity | ||||
alias Pleroma.Mailer | |||||
alias Pleroma.Emails.Mailer | |||||
alias Pleroma.Emails.UserEmail | |||||
alias Pleroma.Repo | alias Pleroma.Repo | ||||
alias Pleroma.User | alias Pleroma.User | ||||
alias Pleroma.UserEmail | |||||
alias Pleroma.UserInviteToken | alias Pleroma.UserInviteToken | ||||
alias Pleroma.Web.ActivityPub.ActivityPub | alias Pleroma.Web.ActivityPub.ActivityPub | ||||
alias Pleroma.Web.CommonAPI | alias Pleroma.Web.CommonAPI | ||||
@@ -318,7 +318,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do | |||||
refute token_record.used | refute token_record.used | ||||
Swoosh.TestAssertions.assert_email_sent( | Swoosh.TestAssertions.assert_email_sent( | ||||
Pleroma.UserEmail.user_invitation_email( | |||||
Pleroma.Emails.UserEmail.user_invitation_email( | |||||
user, | user, | ||||
token_record, | token_record, | ||||
recipient_email, | recipient_email, | ||||
@@ -1064,7 +1064,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do | |||||
token_record = Repo.get_by(Pleroma.PasswordResetToken, user_id: user.id) | token_record = Repo.get_by(Pleroma.PasswordResetToken, user_id: user.id) | ||||
Swoosh.TestAssertions.assert_email_sent( | Swoosh.TestAssertions.assert_email_sent( | ||||
Pleroma.UserEmail.password_reset_email(user, token_record.token) | |||||
Pleroma.Emails.UserEmail.password_reset_email(user, token_record.token) | |||||
) | ) | ||||
end | end | ||||
end | end | ||||
@@ -1163,7 +1163,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do | |||||
|> assign(:user, user) | |> assign(:user, user) | ||||
|> post("/api/account/resend_confirmation_email?email=#{user.email}") | |> post("/api/account/resend_confirmation_email?email=#{user.email}") | ||||
Swoosh.TestAssertions.assert_email_sent(Pleroma.UserEmail.account_confirmation_email(user)) | |||||
Swoosh.TestAssertions.assert_email_sent( | |||||
Pleroma.Emails.UserEmail.account_confirmation_email(user) | |||||
) | |||||
end | end | ||||
end | end | ||||
@@ -325,7 +325,9 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do | |||||
assert user.info.confirmation_pending | assert user.info.confirmation_pending | ||||
Swoosh.TestAssertions.assert_email_sent(Pleroma.UserEmail.account_confirmation_email(user)) | |||||
Swoosh.TestAssertions.assert_email_sent( | |||||
Pleroma.Emails.UserEmail.account_confirmation_email(user) | |||||
) | |||||
end | end | ||||
test "it registers a new user and parses mentions in the bio" do | test "it registers a new user and parses mentions in the bio" do | ||||