После обновления Debian сервера перестали уходить письма из Roundcube
Понадобилось обновить почтовый сервер на Debian. Пакетов овердофига, все обновления встали, проблем особо не было, сертификаты Letsencrypt получены. Но посыпались жалобы, что из веб-морды roundcube перестали уходить письма. С какой версии обновление прошло не помню, но сейчас стоит версия 1.6.1. При нажатии кнопки Отправить выходило следующее всплывающее уведомление
roundcube SMTP ошибка (): Сбой соединения с сервером
В логах /var/log/roundcube/errors.log было только такое
SMTP Error: Connection failed: (Code: -1) in /usr/share/roundcube/program/lib/Roundcube/rcube.php on line 1787 (POST /roundcube/?_task=mail&_unlock=loading1686224699339&_framed=1&_action=send)
Понятно, что обновление кривое, но куда копать? Сертификаты, порты, apache, обновлённый postfix? Последний кстати работал на 25 порту. Перепробовал кучу вариантов:
- в config.inc.php менял порты smtp_port
- методы аутентификации smtp_auth_type
- параметры smtp_user, smtp_pass
- по нескольку раз редактировал конфиг apache
- перепрописывал пути к сертифкатам в postfix, dovecot
- перевыпустил новые сертификаты
- менял настройки в defaults.inc.php
- облазил логи
Решение нашлось только после того, как я включил smtp debug в roundcube: в /etc/roundcube/defaults.inc.php поменял $config[‘smtp_debug’] = false; на $config[‘smtp_debug’] = true;
Только после этого появились логи /var/log/roundcube/smtp.log, куда сыпалось следующее:
[08-Jun-2023 21:41:24 +0500]: <05dc09ve> Connecting to localhost:587...
[08-Jun-2023 21:41:25 +0500]: <05dc09ve> Connecting to localhost:587...
[08-Jun-2023 21:41:25 +0500]: <05dc09ve> Connecting to localhost:587...
[08-Jun-2023 21:41:25 +0500]: <05dc09ve> Connecting to localhost:587...
[08-Jun-2023 21:42:10 +0500]: <05dc09ve> Connecting to localhost:587...
[08-Jun-2023 21:42:21 +0500]: <05dc09ve> Connecting to localhost:587...
То есть, после обновления roundcube по умолчанию началась стучаться на 587 порт, несмотря на то, что в конфиге было следующее:
$config['smtp_port'] = 25;
Попробовал указать порт в параметре smtp_server и заработало! Ура.
Итого, чтобы новый roundcube продолжил работать со старым 25 портом, в /etc/roundcube/config.inc.php пропишите адрес сервера с портом следующим образом:
$config['smtp_server'] = 'localhost:25';
Всего самого самого!!
аналогичное решение тут: https://talk.plesk.com/threads/roundcube-1-5-2-smtp-1-error.365052/
Отблагдарить автора статьи также можно переводом, +100 вам в карму!