Отправка приветственного письма пользователю после регистрации на вашем сайте — это отличный способ начать с ним работу и дать ему понять, что ему здесь рады, кроме того, приятно просто сказать спасибо, разве нет?
Что ж, без сомнений, на вашем сайте возникнет необходимость отправлять электронные письма, и вам нужно знать, как это сделать.
Не беспокойтесь, в этой статье я покажу вам, как легко настроить отправку электронной почты в Laravel при помощи Gmail SMTP! Так что, как обычно, расслабьтесь, выпейте чашечку кофе и приступим к делу.
Необходимые компоненты
- Ноутбук (очевидно)
- Аккаунт Gmail
Настройка Laravel
Надеюсь, что у вас уже установлен composer, поэтому перейдите в рабочую папку нового проекта и запустите приведенный ниже код в консоли.
composer global require laravel/installer
Composer загрузит установщик Laravel. Теперь создайте новый проект
laravel new mail4me
Поздравляю! Вы успешно настроили Laravel и, теперь, вы в одном шаге от создания нечто прекрасного. У вас есть папка mail4me, которая содержит все файлы проекта. Перейдите в папку mail4me и запустите
php artisan serve
Настройка SMTP-сервера Gmail в Laravel
После запуска Laravel необходимо настроить SMTP. Для этого откройте файл .env, он лежит в корне проекта, и отредактируйте эти поля
MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null
замените их на:
MAIL_DRIVER=smtp MAIL_HOST=smtp.googlemail.com MAIL_PORT=465 MAIL_USERNAME=ENTER_YOUR_GMAIL_USERNAME MAIL_PASSWORD=ENTER_YOUR_GMAIL_PASSWORD MAIL_ENCRYPTION=ssl
Сохраните изменения.
Поскольку мы используем Gmail SMTP, нам нужно изменить некоторые настройки в нашей учетной записи Google.
Войдите в неё и нажмите «Аккаунт Google». Далее нажмите «Безопасность». Прокрутите вниз до упора и увидите настройку «Ненадежные приложения, у которых есть доступ к аккаунту». Включите её.
Код отправки почты
На этом этапе мы успешно завершили все основные настройки. Теперь нам нужно написать код, который отправит электронное письмо. Примерно так:
$to_name = 'TO_NAME'; $to_email = 'TO_EMAIL_ADDRESS'; $data = array('name'=>"Sam Jose", "body" => "Test mail"); Mail::send('emails', $data, function($message) use ($to_name, $to_email) { $message->to($to_email, $to_name)->subject('Artisans Web Testing Mail'); $message->from('FROM_EMAIL_ADDRESS','Artisans Web'); });
В выше приведенном коде мы используем шаблон «emails». Это означает, что мы должны создать папку и файл: resources/views/emails.blade.php.
Наш emails.blade.php будет содержать следующий код:
Hi <strong>{{ $name }}</strong>, <p>{{ $body }}</p>
Всё! Laravel в фоновом режиме автоматически использует SMTP-сервер Gmail и отправляет через него электронную почту.
Автор: Oluwatobi Shokunbi
Перевод: Алексей Широков
Наш Телеграм-канал — следите за новостями о Laravel.