18 июня почтовый сервис mail.ru перестал работать с почтовыми клиентами на тарифе «С рекламой». Это заставило меня ещё 17 июня перейти на самый дешевый, но всё же платный тариф «Стартовый». Результат такого перехода стал следующий: почта в моем любимом почтовом клиенте «Thunderbird» продолжила работать, а вот отправка писем по протоколу SMTP внезапно накрылась медным тазом.
О том, что письма с сайта не уходят, я, как и положено, узнал от клиента, который не смог пройти авторизацию.
Произошло это на сайте под управлением Joomla 6.
Расследование причин продолжалось более часа и привело к следующему выводу:
Мой сервер пытался установить защищенное соединение с Mail.ru, но не смог проверить подлинность SSL-сертификата Mail.ru.
Отключение проверки в файле «libraries/vendor/phpmailer/phpmailer/src/PHPMailer.php» позволяло письмам отправляться, как и раньше.
Само отключение выглядит так:
public $SMTPOptions = [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
];
Однако сам файл менять я не стал, а переопределил его с помощью своего системного плагина.
Таким образом, после обновления Joomla изменения не пропадут и мой сайт по прежнему продолжит радовать человечество отправкой писем.
Заключение
Цель данной заметки — не предоставить конкретное решение, а сэкономить время в поиске причины.
Уверен, гуру и знатоки всего и вся скажут: «Так вопросы не решаются!».
Вполне вероятно, когда вы читаете эти строчки я придумал более достойное решение.
А, может, и не придумал.
В любом случае, надеюсь моя заметка наведёт вас на решение проблемы и вы поймете: почему отправка с вашего сайта по SMTP перестала работать.
Напоминаю!
Если у вас остались вопросы и предложения, их всегда можно озвучить в группе VK по ссылке ниже:
Также можно подписаться на мой канал в MAX:
С уважением, Владимир Егоров.
