1
0
mirror of https://github.com/flarum/core.git synced 2025-10-26 21:21:28 +01:00

Send emails through the queue

This commit is contained in:
Alexander Skvortsov
2020-03-28 18:52:00 -04:00
committed by Daniël Klabbers
parent 857fd95b5e
commit 03a4997a1c
5 changed files with 71 additions and 43 deletions

View File

@@ -10,14 +10,14 @@
namespace Flarum\User\Command;
use Flarum\Http\UrlGenerator;
use Flarum\Mail\Job\SendRawEmailJob;
use Flarum\Settings\SettingsRepositoryInterface;
use Flarum\User\PasswordToken;
use Flarum\User\UserRepository;
use Illuminate\Contracts\Mail\Mailer;
use Illuminate\Contracts\Queue\Queue;
use Illuminate\Contracts\Translation\Translator;
use Illuminate\Contracts\Validation\Factory;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Mail\Message;
use Illuminate\Validation\ValidationException;
class RequestPasswordResetHandler
@@ -33,9 +33,9 @@ class RequestPasswordResetHandler
protected $settings;
/**
* @var Mailer
* @var Queue
*/
protected $mailer;
protected $queue;
/**
* @var UrlGenerator
@@ -55,7 +55,7 @@ class RequestPasswordResetHandler
/**
* @param UserRepository $users
* @param SettingsRepositoryInterface $settings
* @param Mailer $mailer
* @param Queue $queue
* @param UrlGenerator $url
* @param Translator $translator
* @param Factory $validatorFactory
@@ -63,14 +63,14 @@ class RequestPasswordResetHandler
public function __construct(
UserRepository $users,
SettingsRepositoryInterface $settings,
Mailer $mailer,
Queue $queue,
UrlGenerator $url,
Translator $translator,
Factory $validatorFactory
) {
$this->users = $users;
$this->settings = $settings;
$this->mailer = $mailer;
$this->queue = $queue;
$this->url = $url;
$this->translator = $translator;
$this->validatorFactory = $validatorFactory;
@@ -110,11 +110,9 @@ class RequestPasswordResetHandler
];
$body = $this->translator->trans('core.email.reset_password.body', $data);
$subject = '['.$data['{forum}'].'] '.$this->translator->trans('core.email.reset_password.subject');
$this->mailer->raw($body, function (Message $message) use ($user, $data) {
$message->to($user->email);
$message->subject('['.$data['{forum}'].'] '.$this->translator->trans('core.email.reset_password.subject'));
});
$this->queue->push(new SendRawEmailJob($user->email, $subject, $body));
return $user;
}