Відправка електронної пошти через сервер 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 і натисніть "Обліковий запис". Опинившись на сторінці "Обліковий запис", натисніть "Безпека". Прокрутіть униз, і ви знайдете налаштування "Менш безпечний доступ до програми". Встановіть його на ON.
Код для відправки електронної пошти в Laravel
На цьому етапі ви закінчите всі основні налаштування. Тепер вам потрібно написати код Laravel, який надішле електронне повідомлення.
Для цього підручника я збираюся використовувати клас «Mail» для написання коду. Користувач може також написати код за допомогою Laravel Mailable. Це не призведе до різниці. В обох випадках Laravel використовує сервер SMTP Gmail у фоновому режимі.
Коли ви використовуєте клас "Пошта", ваш код буде приблизно таким, як написано нижче.
$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