Рейтинг: 5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

Как настроить Laravel для работы с SMTP сервером Яндекс Почты

Для тех, кто как и я не использует почтовый сервер у себя на сервере, приходится решать вопрос отправки почты через внешние сервисы бесплатных почтовых ящиков крупных провайдеров этой услуги таких, как, например, Яндекс или Google. У Яндекса, которым я предпочитаю пользоваться из-за удобства интерфейса, а не из-за патриотизма, почта очень просто подключается к доменному имени, (но об этом как-нибудь в другой раз).



  1. Заводим почту домена на Яндексе, привязанную к домену сайта
  2. .env — файл с основными настройками фреймворка Laravel для работы с Яндекс Почтой
  3. Файл mail.php с настройками Laravel для работы почтовых сервисов
  4. Обновляем кэш фреймворка Laravel

В этой статье рассмотрим, какие настройки нужно сделать для того, чтобы «слать мыло», используя почтовый ящик, привязанный к аккаунту того сайта, с которого было решено его использовать.

1. Заводим почту домена на Яндексе, привязанную к домену сайта

Внимание!
Просто бесплатный почтовый ящик Яндекса можно конечно попробовать подцепить, но не факт, что он будет исправно работать.
Разработчики Яндекса вроде как подстраховались, и не особо горят желанием раздавать бесплатные мощности своих серверов для рассылки спама всем желающим. Так что, если очень хочется, но что-то не получается, заведите себе ящик на своём доменном имени. Вероятность, что после этого всё заработает, достаточно большая. ;)

Итак, имея почтовый ящик на собственном домене типа Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. который привязан к Яндексу, нужно внести настройки в два файла Laravel:

2. .env — файл с основными настройками фреймворка Laravel для работы с Яндекс Почтой

Ищем и прописываем свои данные:

MAIL_MAILER=smtp
MAIL_HOST=smtp.yandex.ru
MAIL_PORT=465
MAIL_USERNAME=ТУТ_ЛОГИН_В_ВИДЕАдрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
MAIL_PASSWORD=ТУТ_ПАРОЛЬ_ОТ_ЯЩИКА
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=ТУТ_ЕЩЁ_РАЗ_ЛОГИН_В_ВИДЕАдрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
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.

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )

Войдите чтобы комментировать
Ayrat ответил в теме #9443 1 мес. 1 нед. назад
Как оказалось, еще нужно настроить саму почту. Авторизацию с помощью обычного (портального) пароля нужно сперва разрешить в настройках ящика: Почта -> Все настройки. Поставить галочку на imap и на способе авторизации.
Ayrat ответил в теме #9442 1 мес. 1 нед. назад
Вот такое вот сообщение выходит. С gmail так же было, но после настройки безопасности всё прошло. А вот теперь то же с яндексом.

message: "Failed to authenticate on SMTP server with username "**********@yandex.ru" using 3 possible authenticators. Authenticator LOGIN returned Expected response code 235 but got code "535", with message "535 5.7.8 Error: authentication failed: This user does not have access rights to this service
↵". Authenticator PLAIN returned Expected response code 235 but got code "535", with message "535 5.7.8 Error: authentication failed: This user does not have access rights to this service
↵". Authenticator XOAUTH2 returned Expected response code 235 but got code "535", with message "535 5.7.8 Error: authentication failed: Invalid user or password!
↵"."

Обсудить эту статью

INFO: Вы отправляете сообщение как 'Гость'