
Новый функционал Laravel 5.3 позволит упростить отправку электронной почты путем создания “mailable” классов, обрабатывающих настройки отправки ваших сообщений.
Лучше всего описать эту возможность получится на примере. В Laravel 5.2 обычно вы отправляли сообщения электронной почты способом, описанным в документации:
Mail::send('emails.reminder', ['user' => $user], function ($m) use ($user) {
$m->from('hello@app.com', 'Your Application');
$m->to($user->email, $user->name)->subject('Your Reminder!');
});
Многое происходит в этих четырёх строках кода. Вы описываете шаблон, данные для этого шаблона, используете анонимную функцию с user
, и, наконец, настраиваете ваше сообщение.В настоящее время в Laravel 5.3 вы можете упростить этот процесс за счёт класса
mailable
.php artisan make:mail YourReminderОткройте новый класс, как только он создастся, и вся конфигурация отправки электронной почты сразу станет доступна в методе
build
. Внутри него вы можете вызывать различные методы, такие как from
, subject
, view
, для настройки отправки сообщений. Ниже приведён краткий пример:public function build()
{
return $this->from('example@example.com')
->view('emails.reminder');
}
Теперь, если вы захотите отправить сообщение по электронной почте, вы в любой момент можете воспользоваться фасадом Mail
:Mail::to($email)->send(new YourReminder);
Почти весь существующий функционал для отправки сообщений уже работает. Вам доступны очереди, добавление cc
и bcc
полей, прикрепление файлов и многое другое.Вот несколько ресурсов, если вы желаете узнать больше о Laravel Mailable:
- Matt Stauffer – введение в Mailables
- Laracasts – видео про использование Mailables
- Официальная документация
Оригинальная статья