Отправка электронной почты через SMTP-сервер Gmail в Laravel
Вы хотите использовать SMTP-сервер Gmail для отправки писем в Laravel? Иногда ваш сервер не отправляет электронные письма из-за своих ограничений или неправильной конфигурации. В таких случаях вы можете использовать SMTP-сервер для отправки электронных писем. В этой статье мы обсудим, как отправлять электронную почту с помощью SMTP-сервера Gmail в Laravel.
Используя SMTP-сервер, ваши электронные письма не попадут в папку для спама. Как правило, оно будет рассматриваться как подлинное электронное письмо и попадет в почтовый ящик пользователя.
Еще одно преимущество использования SMTP-сервера заключается в том, что вы также можете отправлять электронные письма со своего локального сервера. Будет полезно протестировать работу электронной почты на самом локальном сервере.
Настройка SMTP-сервера Gmail в Laravel
Laravel использует config/mail.php
файл для хранения деталей, связанных с поставщиками электронной почты. Этот файл содержит такие настройки, как MAIL_HOST, MAIL_PORT, MAIL_ENCRYPTION и т.д. Пользователь должен предоставить эту информацию, которая будет использоваться Laravel и отправлять ваши электронные письма.
Чтобы добавить эту информацию, вам не нужно редактировать config / mail.php. Вместо этого вам следует сохранить эти данные в .env
файле.
Откройте .env
файл, который находится в корневом каталоге, и вы найдете ниже код, связанный с настройками электронной почты.
MAIL_MAILER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Отредактируйте приведенные выше данные следующим образом.
MAIL_MAILER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=GMAIL_USERNAME
MAIL_PASSWORD=GMAIL_PASSWORD
MAIL_ENCRYPTION=ssl
Здесь я установил драйвер как smtp, хост для Gmail как smtp.googlemail.com, порт SMTP для Gmail как 465 и метод шифрования ssl. Не забудьте заменить заполнители GMAIL_USERNAME, GMAIL_PASSWORD своим фактическим именем пользователя и паролем Gmail.
Чтобы использовать SMTP-сервер Gmail, вам необходимо изменить некоторые настройки в своей учетной записи Google. Войдите в свою учетную запись Google и нажмите «Учетная запись». Как только вы окажетесь на странице «Учетная запись», нажмите «Безопасность». Прокрутите вниз, и вы найдете настройки «Небезопасный доступ к приложениям». Установите его в положение ВКЛ.
Код для отправки электронной почты в Laravel
На этом этапе вы завершили все основные настройки. Теперь вам нужно написать код Laravel, который будет отправлять электронное письмо.
В этом руководстве я собираюсь использовать класс Mail для написания кода. Пользователь также может написать код с помощью Laravel Mailable. Это не будет иметь никакого значения. В обоих случаях Laravel использует SMTP-сервер Gmail в фоновом режиме.
Когда вы используете класс «Mail», ваш код будет выглядеть примерно так, как написано ниже.
$to_name = 'TO_NAME';
$to_email = 'TO_EMAIL_ADDRESS';
$data = array('name'=>"Sam Jose", "body" => "Test mail");
Mail::send('emails.mail', $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.mail”. Это означает, что вам нужно создать папку и файл как resources->views->emails->mail.blade.php
.
Ваш mail.blade.php
будет содержать следующий код.
Hi <strong>{{ $name }}</strong>,
<p>{{ $body }}</p>
Это оно! Теперь в фоновом режиме Laravel будет автоматически использовать SMTP-сервер Gmail и отправлять ваши электронные письма.
Статьи по Теме
- Тестирование электронной почты Laravel: Mailtrap против других вариантов
- Как записывать запрос в Laravel
- Как установить и использовать CKEditor в Laravel