Настройка SMTP в Drupal для отправки через Яндекс Почту

Не будем долго писать, что отправка уведомлений с сайта и доставка писем крайне важная задача - будь то обновления по безопасности или заявки. Да, по умолчанию отправляются и сервером, но могут попадать в спам. Отличным решением является отправка через какой-нибудь популярный сервер - в нашем примере это Яндекс Почта.

Короткий алгоритм действий:

  1. включаем в веб-интерфейсе яндекс почты IMAP, авторизация по паролю приложений
  2. создаем пароль приложений (да, нужно)
  3. настраваем SMTP модуль (заработало на последней DEV версии для д7 - https://ftp.drupal.org/files/projects/smtp-7.x-1.x-dev.tar.gz)
  4. и еще важно - email отправителя должен быть тем же, соответственно в настройках сайта и вебформы указываем этот же емейл, которым авторизуемся на smtp-сервере
  5. на некоторых хостинга порты для SMTP закрыты - запросите в поддержке, чтобы открыли, или смените хостинг.

Ну а далее подробно, вдруг у вас ошибка на каком-то из шагов возникла.

Настройка SMTP на стороне Яндекса

Сначала включаем доступ к ящику по imap: Все настройки - Почтовые программы:

Способ авторизации по IMAP Пароли приложений и OAuth-токены

Настройка IMAP на Яндекс почте

Далее создаем пароль приложений

  1. Откройте страницу Управление аккаунтом.

  2. В разделе Пароли и авторизация выберите Включить пароли приложений. Подтвердите действие и нажмите Создать новый пароль.

    Если вы включили двухфакторную аутентификацию, просто нажмите Создать пароль приложения.

  3. Выберите тип приложения Почта.

  4. Придумайте название пароля, например укажите название приложения, для которого вы создаете пароль. С этим названием пароль будет отображаться в списке.

  5. Нажмите кнопку Создать. Пароль приложения отобразится во всплывающем окне.

Созданный пароль можно увидеть только один раз! Сразу его запишите. Если вы ввели его неправильно и закрыли окно, удалите текущий пароль и создайте новый.

Настройка модуля SMTP в Drupal

В данном примере используется Drupal 7.

Настройка SMTP модуля в Drupal

Данные для настройки исходящей почты:

  • адрес почтового сервера — 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

Теги

Добавить комментарий