Модуль SMTP не отправляет письма на почтовый сервер smtp.yandex.ru

Главные вкладки

Аватар пользователя borovinskiy borovinskiy 26 декабря 2019 в 1:10

Организация пользуется почтовым сервером Яндекса и требуется отправлять письма через него. Если создать аккаунт на почтовом сервере и попытаться отправить письма, возникают ошибки:

phpmailerException: Ошибка SMTP: нельзя соединиться с хостом SMTP. в функции PHPMailer->SmtpConnect() (строка 825 в файле /var/www/repo/drupal7/modules/smtp/smtp.phpmailer.inc).

Error sending e-mail from robot@example.com to usermail@example.com : Ошибка SMTP: нельзя соединиться с хостом SMTP.

Причина банальна: Яндекс детектирует отправку письма роботом, а не человеком, и потому блокирует её.

Чтобы письма отправлялись, надо зайти на почту в Яндексе и сгенерировать "пароль приложений" и вместо пароля пользователя в настройках модуля SMTP указать именно пароль приложений.

У Gmail не проверял, но видимо там аналогичная ситуация.

Рабочие настройки:

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

Комментарии

Аватар пользователя yaro yaro 26 декабря 2019 в 9:39

Причина банальна: Яндекс детектирует отправку письма роботом, а не человеком, и потому блокирует её.

бред какой-то.

порты 25 и 465 открыты? можно попробовать что-то типа
telnet smpt.yandex.ru 25

Должен вернуть подобный текст:

telnet smtp.yandex.ru 25
Trying 77.88.21.158...
Connected to smtp.yandex.ru.
Escape character is '^]'.
220 vla3-5ed9a7202853.qloud-c.yandex.net ESMTP (Want to use Yandex.Mail for your domain? Visit http://pdd.yandex.ru)

Если connection timeout - нужна помощь хостера или провайдера

Аватар пользователя pselfin pselfin 26 декабря 2019 в 15:53

На одном из хостингов голову с смтп ломал пару дней.
В итоге оказалось нужно запрашивать открытие 25 порта индивидуально.
Я был в ярости - ничего не сказать...

Аватар пользователя bsyomov bsyomov 26 декабря 2019 в 21:00
1

На самом деле, надо просто один раз зайти в аккаунт почты через интерфейс яндекса и завершить его регистрацию. Тогда будет работать почта без паролей приложений.

Ну и, на самом деле, вам совершенно не обязательно отправлять почту через яндекс даже если он используется в вашей организации. Можно и через почтовик на вашем сервере, если всё правильно настроить(dkim spf и.т.п.).

Аватар пользователя borovinskiy borovinskiy 31 декабря 2019 в 2:18

bsyomov wrote:
На самом деле, надо просто один раз зайти в аккаунт почты через интерфейс яндекса и завершить его регистрацию. Тогда будет работать почта без паролей приложений.

Может раньше так и было, а нынче у меня оно не вышло.

В GMail тоже надо отправку через "приложения" подключать, там-то прямо сообщения приходят, что отправка письма заблокирована.

Как по мне, это очень логичный выход для уменьшения спама от взломанных аккаунтов хомячков.

Аватар пользователя adano adano 27 декабря 2019 в 12:21

На 2ух проектах (разные хостинги), была банальная ситуация с включением и выключением модуля SMTP (без деинсталла)...
Начинает работает. В чем причина такого поведения, так и не отловил.

Аватар пользователя pselfin pselfin 19 июля 2022 в 18:38

Апну старую тему, но полезную.
Пароль приложений - готово.
Письма приходят Gmail, и ни в какую на mail.ru
Мне кажется проблема может быть в том что хоть в настройках и указан адрес смтп почты, но гугл почему-то видит отправителем один емейл, а куда ответить - нужную...
Может кто сталкивался?

Аватар пользователя pselfin pselfin 20 июля 2022 в 14:19

В общем, алгоритм такой:

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

Вот здесь подробная инструкция по настройке SMTP для отправки через Yandex

Аватар пользователя Antonina Antonina 21 июля 2022 в 11:29

С месяц назад тоже перестала почта работать на 7-ке через gmail, танцы с бубном методом тыка...в итоге оказалось надо было создать приложение и пароль для него, пароль соответственно ввести в полях настройки и все заработало.