Страницы

14.08.2016

Laravel Mailable: Новый улучшенный способ отправки электронной почты в Laravel


enter image description here
Новый функционал 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:

Оригинальная статья