Отправка почты через Gmail SMTP

Отправка приветственного письма пользователю после регистрации на вашем сайте — это отличный способ начать с ним работу и дать ему понять, что ему здесь рады, кроме того, приятно просто сказать спасибо, разве нет?

Что ж, без сомнений, на вашем сайте возникнет необходимость отправлять электронные письма, и вам нужно знать, как это сделать.

Не беспокойтесь, в этой статье я покажу вам, как легко настроить отправку электронной почты в 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». Далее нажмите «Безопасность». Прокрутите вниз до упора и увидите настройку «Ненадежные приложения, у которых есть доступ к аккаунту». Включите её.
Отправка писем в Ларавел через Gmail

Код отправки почты

На этом этапе мы успешно завершили все основные настройки. Теперь нам нужно написать код, который отправит электронное письмо. Примерно так:

$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.