Не будем долго писать, что отправка уведомлений с сайта и доставка писем крайне важная задача - будь то обновления по безопасности или заявки. Да, по умолчанию отправляются и сервером, но могут попадать в спам. Отличным решением является отправка через какой-нибудь популярный сервер - в нашем примере это Яндекс Почта.
Короткий алгоритм действий:
- включаем в веб-интерфейсе яндекс почты IMAP, авторизация по паролю приложений
- создаем пароль приложений (да, нужно)
- настраваем SMTP модуль (заработало на последней DEV версии для д7 - https://ftp.drupal.org/files/projects/smtp-7.x-1.x-dev.tar.gz)
- и еще важно - email отправителя должен быть тем же, соответственно в настройках сайта и вебформы указываем этот же емейл, которым авторизуемся на smtp-сервере
- на некоторых хостинга порты для SMTP закрыты - запросите в поддержке, чтобы открыли, или смените хостинг.
Ну а далее подробно, вдруг у вас ошибка на каком-то из шагов возникла.
Настройка SMTP на стороне Яндекса
Сначала включаем доступ к ящику по imap: Все настройки - Почтовые программы:
Способ авторизации по IMAP Пароли приложений и OAuth-токены
Далее создаем пароль приложений
-
Откройте страницу Управление аккаунтом.
- В разделе Пароли и авторизация выберите Включить пароли приложений. Подтвердите действие и нажмите Создать новый пароль.
Если вы включили двухфакторную аутентификацию, просто нажмите Создать пароль приложения.
-
Выберите тип приложения Почта.
-
Придумайте название пароля, например укажите название приложения, для которого вы создаете пароль. С этим названием пароль будет отображаться в списке.
-
Нажмите кнопку Создать. Пароль приложения отобразится во всплывающем окне.
Созданный пароль можно увидеть только один раз! Сразу его запишите. Если вы ввели его неправильно и закрыли окно, удалите текущий пароль и создайте новый.
Настройка модуля SMTP в Drupal
В данном примере используется Drupal 7.
Данные для настройки исходящей почты:
-
адрес почтового сервера — smtp.yandex.ru;
-
защита соединения — SSL;
-
порт — 465.
Еще немного
Отправителем по умолчанию используется почта, указанная в Информации о сайте (/admin/config/system/site-information). И очень важно, чтобы она была той же, который мы авторизуемся на сервере!
Если все сделано правильно, вы можете отправить тестовое письмо прямо со страницы настроек SMTP. Даже на mail.ru приходят)
Решение проблем с отправкой почты через Яндекс в Drupal SMTP
Не верный пароль - Error: authentication failed: Invalid user or passwor
SMTP -> get_lines(): $str is "535 5.7.8 Error: authentication failed: Invalid user or password! 1658318354-OLAk1iQvF2-xDj8c0BO "
SMTP -> get_lines(): $data was "535 5.7.8 Error: authentication failed: Invalid user or password! 1658318354-OLAk1iQvF2-xDj8c0BO "
SMTP -> ERROR: Password not accepted from server: 535 5.7.8 Error: authentication failed: Invalid user or password! 1658318354-OLAk1iQvF2-xDj8c0BO
Если увидели в логах что-то вроде Error: authentication failed: Invalid user or password! - вероятно вы пытались использовать пароль входа в почту. Нужен именно ПАРОЛЬ ПРИЛОЖЕНИЙ!!!
Могу ошибиться, но сдается мне что очередность важна - включаем сначала IMAP, потом создаем Пароль приложений.
Адрес отправителя не принадлежит пользователю - Sender address rejected: not owned by auth user
SMTP -> get_lines(): $str is "553 5.7.1 Sender address rejected: not owned by auth user. 1658318601-iuqYYKYgIL-3LiSoi8c "
SMTP -> get_lines(): $data was "553 5.7.1 Sender address rejected: not owned by auth user. 1658318601-iuqYYKYgIL-3LiSoi8c "
SMTP -> FROM SERVER: 553 5.7.1 Sender address rejected: not owned by auth user. 1658318601-iuqYYKYgIL-3LiSoi8c
Это означает, что отправитель не соответствует авторизованному на сервере логину. В друпал 7 по умолчанию он настраивается /admin/config/system/site-information
Кстати, в настройках модуля Webform то же есть - будьте внимательны - /admin/config/content/webform
Добавить комментарий