Для тех, кто как и я не использует почтовый сервер у себя на сервере, приходится решать вопрос отправки почты через внешние сервисы бесплатных почтовых ящиков крупных провайдеров этой услуги таких, как, например, Яндекс или Google. У Яндекса, которым я предпочитаю пользоваться из-за удобства интерфейса, а не из-за патриотизма, почта очень просто подключается к доменному имени, (но об этом как-нибудь в другой раз).
- Заводим почту домена на Яндексе, привязанную к домену сайта
.env
— файл с основными настройками фреймворка Laravel для работы с Яндекс Почтой- Файл
mail.php
с настройками Laravel для работы почтовых сервисов - Обновляем кэш фреймворка Laravel
В этой статье рассмотрим, какие настройки нужно сделать для того, чтобы «слать мыло», используя почтовый ящик, привязанный к аккаунту того сайта, с которого было решено его использовать.
1. Заводим почту домена на Яндексе, привязанную к домену сайта
Внимание!
Просто бесплатный почтовый ящик Яндекса можно конечно попробовать подцепить, но не факт, что он будет исправно работать.
Разработчики Яндекса вроде как подстраховались, и не особо горят желанием раздавать бесплатные мощности своих серверов для рассылки спама всем желающим. Так что, если очень хочется, но что-то не получается, заведите себе ящик на своём доменном имени. Вероятность, что после этого всё заработает, достаточно большая. ;)
Итак, имея почтовый ящик на собственном домене типа admin@mydomain.ru
который привязан к Яндексу, нужно внести настройки в два файла Laravel:
2. .env
— файл с основными настройками фреймворка Laravel для работы с Яндекс Почтой
Ищем и прописываем свои данные:
MAIL_MAILER=smtp
MAIL_HOST=smtp.yandex.ru
MAIL_PORT=465
MAIL_USERNAME=ТУТ_ЛОГИН_В_ВИДЕ__admin@mydomain.ru
MAIL_PASSWORD=ТУТ_ПАРОЛЬ_ОТ_ЯЩИКА
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=ТУТ_ЕЩЁ_РАЗ_ЛОГИН_В_ВИДЕ__admin@mydomain.ru
MAIL_FROM_NAME="Тут какое-то название"
Файл .env
находится в корне проекта Laravel (для тех, кто не понимает, где его искать)
3. Файл mail.php
с настройками Laravel для работы почтовых сервисов
Файл mail.php
находится в папке config
— там его ищите ;)
Ищем блок с информацией о конфигурации SMTP-соединения и прописываем свои данные:
'mailers' => [
'smtp' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.yandex.ru'),
'port' => env('MAIL_PORT', 465),
'encryption' => env('MAIL_ENCRYPTION', 'ssl'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'timeout' => null,
'auth_mode' => null,
],
Как видно, основные данные SMTP соединения данной секции формируются из констант, которые мы уже прописали в основном файле настроек .env
.
4. Обновляем кэш фреймворка Laravel
После того, как всё настроено, обязательно обновите кэш фреймворка с помощью команды:
php artisan config:cache
У меня после этих манипуляций почта начала прилетать на почту домена, привязанную к Яндексу. Чего и вам желаю. =)
P.S. Сейчас у меня установлена актуальная рабочая версия: Laravel Framework 8.10.0
.
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)