Почтовый сервер не работает в ispmanager 6
Симптомы
Не отправляются и не принимаются письма почтовым сервером в ispmanager 6.
Причины
- Используется устаревшая версия панели;
- Ограничена работа портов почтового сервера;
- В панели отсутствует почтовый домен;
- Отсутствуют MX-записи для домена;
- А-запись почтового домена имеет неверное значение;
- Для IP-адреса почтового сервера не указана PTR-запись;
- Отсутствуют TXT-записи с DKIM и DMARC для домена;
- База ClamAv устарела;
- IP-адрес почтового домена находится в черном списке;
- Не настроены заголовки для IP-адресов почтовых доменов.
Решение
Устаревшая версия панели
Убедитесь, что панель обновлена до актуальной версии. Проверить текущую версию можно в нашем changelog.
Если версии не совпадают, обновите панель до актуальной версии.
Ограничена работа портов почтового сервера
Для корректной работы почтового сервера, на сервере должны быть доступны порты 110, 143, 993, 995, 587, 465 и 25.
Для проверки доступности портов для подключения можно с помощью утилит telnet и nmap.
Проверка через telnet
С помощью утилиты telnet можно проверить доступность портов с удаленной машины выполнив команду:
telnet <ip-адрес> <порт>
Например, чтобы проверить доступность входящих подключений (порт 110) на почтовом сервере по адресу 172.31.97.58, выполните следующую команду:
telnet 172.31.97.58 110Если подключение к серверу по порту будет доступно, вывод команды будет следующим:
Trying 172.31.97.58...
Connected to 172.31.97.58.
Escape character is '^]'.
+OK Dovecot (Ubuntu) readyПри недоступности порта, команда вернет ошибку «Unable to connect to remote host: Connection refused».
Чтобы проверить доступность исходящих подключений, необходимо выполнять команду на вашем сервере, например:
telnet smtp.gmail.com 25Если подключение успешно, команда вернет следующее:
Trying 142.251.1.109...
Connected to smtp.gmail.com.
Escape character is '^]'.
220 smtp.gmail.com ESMTP 2adb3069b0e04-52fd5c2931asm880471e87.240 - gsmtpВ случае недоступности порта, будет возвращена ошибка «Network is unreachable».
Адрес smtp.gmail.com можно использовать для проверки портов 25 и 465. Для проверки доступности портов 143 и 993, используйте адрес imap.gmail.com.
Проверка через nmap
С помощью утилиты nmap можно проверить доступность портов с удаленной машины выполнив команду:
nmap <ip-адрес> -p<порт>
Например, чтобы проверить доступность входящих подключений (порт 110) на почтовом сервере по адресу 172.31.97.58, выполните следующую команду:
nmap 172.31.97.58 -p110Если подключение к серверу по порту будет доступно, в выводе команды статус (колонка STATE) будет указан как open:
Starting Nmap 7.80 ( https://nmap.org ) at 2024-01-01 11:11 MSK
Nmap scan report for isptest.ru (172.31.97.58)
Host is up (0.014s latency).
PORT STATE SERVICE
110/tcp open pop3
Nmap done: 1 IP address (1 host up) scanned in 0.05 secondsВ случае, если статус будет указан как filtered, то это будет означать, что доступ к порту ограничен со стороны сервера. При статусе closed порт не прослушивается службой или доступ к нему ограничен на уровне сети со стороны сервера.
Также с помощью ключа -Pn , который указывается вместо определенного порта, можно проверить статус всех прослушиваемых портов:
$ nmap 172.31.97.58 -Pn
Starting Nmap 7.80 ( https://nmap.org ) at 2024-01-01 11:11 MSK
Nmap scan report for isptest.ru (172.31.97.58)
Host is up (0.071s latency).
Not shown: 982 closed tcp ports (conn-refused)
PORT STATE SERVICE
21/tcp filtered ftp
22/tcp filtered ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
111/tcp open rpcbind
143/tcp open imap
443/tcp open https
465/tcp open smtps
587/tcp open submission
873/tcp open rsync
993/tcp open imaps
995/tcp open pop3s
1100/tcp filtered mctp
1500/tcp open vlsi-lm
3306/tcp open mysql
5432/tcp open postgresqlНа Windows по умолчанию отсутствует утилита nmap - её можно установить с официального сайта.
В панели отсутствует почтовый домен
Убедитесь, что домен присутствует в разделе Почта - Почтовые домены. Добавьте и настройте его при необходимости по инструкции из нашей документации.
Отсутствуют MX-записи для домена
Убедитесь, что MX-записи домена созданы и указывают на корректный адрес почтового сервера.
Как правило, MX-записи указывают на поддомен mail. Например, для домена domain.com, MX-запись будет указывать на адрес mail.domain.com.
Проверка DNS-записей выполняется утилитой dig. Например, чтобы проверить MX-запись для домена domain.com на DNS-серверах Google, выполните следующую команду:
dig MX domain.com @8.8.8.8 +shortЕсли записи существуют на DNS-сервере, то они будут отражены в выводе:
10 mail1.domain.com.
20 mail2.domain.com.
На Windows проверить DNS-записи можно с помощью утилиты nslookup.
А-запись почтового домена имеет неверное значение
Убедитесь, что А-запись для вашего почтового домена указывает на корректный IP-адрес.
Проверка DNS-записей выполняется утилитой dig. Например, чтобы проверить А-запись для домена mail.domain.com на DNS-серверах Google, выполните следующую команду:
dig A domain.com @8.8.8.8 +shortЕсли запись существуют на DNS-сервере, то она будет отражена в выводе в виде IP-адреса - он должен совпадать с IP-адресом почтового сервера.
Для IP-адреса почтового сервера не указана PTR-запись
PTR-запись для IP-адреса почтового сервера должна соответствовать имени сервера (hostname).
PTR-запись создается на стороне владельца IP-адреса - зачастую владельцем IP-адреса является хостинг-провайдер.
Узнать имя вашего сервера можно с помощью команды hostname. Если вы пользуетесь панелью ispmanager 6, имя сервера можно также увидеть в разделе Настройки системы.

Проверка DNS-записей выполняется утилитой dig. Например, чтобы проверить PTR-запись для IP-адреса 172.31.97.58 на DNS-серверах Google, выполните следующую команду:
dig -x 172.31.97.58 @8.8.8.8 +shortЕсли запись существует, команда вернет следующий вывод, в конце которого будет указано имя сервера, что указано в записи:
58.97.31.172.in-addr.arpa 3600 IN PTR example.comОтсутствуют TXT-записи с DKIM и DMARC для домена
DMARC-запись определяет политику защиты почтового домена от спама и фишинговых писем.
DKIM-запись представляет собой ключ, по которому отправитель может быть идентифицирован. Также помогает в защите от спама и фишинга.
В панели ispmanager 6, чтобы сгенерировать обе записи, достаточно включить соответствующие опции в настройках почтового домена в разделе Почта.

Для включения DKIM требуется установленный OpenDKIM в разделе Конфигурация ПО - Почтовый сервер.
После включения опций будут сформированы соответствующие DNS-записи для домена в разделе Управление DNS:
_dmarc.domain.com- имя DMARC-записи;dkim._domainkey.domain.com- имя DKIM-записи.
Учитывайте, что если ваш домен управляется на стороннем DNS-сервере, например на стороне регистратора, необходимо будет добавить записи на этом DNS-сервере.
Проверить работу почтового ящика можно с помощью сервиса Mail-Tester!
Устарели базы ClamAV
ClamAV регулярно получает обновления баз сигнатур для актуализации данных о вирусах. В случае, если базы не были актуализированы, служба не будет запущена.
Проверьте работу службы с помощью команды:
systemctl status clamav-freshclamЕсли служба не будет запущена, в выводе команды будет указан статус "Active: failed", а также ошибка "Database update process failed: Forbidden;" в выдержке журнала ниже в выводе.
Данная ошибка указывает, что обновление было прервано из-за блокировки со стороны серверов ClamAV.
В данном случае временным решением для восстановления работоспособности почты, является удаление самого антивируса в разделе "Конфигурация ПО" - "Почтовый сервер". Для полного решения, необходимо установить ClamAV вручную, использовав VPN или прокси-сервер, или же указать зеркало для обновления баз сигнатур в значении параметра DatabaseMirror в конфигурационном файле /etc/freshclam.conf.
Установку или обновление баз сигнатур следует выполнять не ранее, чем через сутки после обнаружения ошибки - это обусловлено интервалом блокировки, который установлен разработчиками антивируса.
Обновить базу можно вручную с помощью команды:
freshclamIP-адрес почтового домена находится в черном списке
Исходящие письма могут быть не доставлены из-за нахождения IP-адреса почтового сервера в черном списке. Проверить нахождение IP-адреса в черных списках можно в сторонних сервисах, например MXToolbox или DNSBL.
В случае, если IP-адрес присутствует хотя бы в одном черном списке, необходимо обратиться к держателю черного списка (название будет указано в выдаче сервиса по проверке) для исключения адреса из этого списка. Если вы арендуете VPS у хостинг-провайдера, обратитесь в его поддержку для решения этой проблемы.
Не настроены заголовки для IP-адресов почтовых доменов
Если почтовые домены работают на разных IP-адресах, для них необходимо создать PTR-запись на стороне регистратора.
Чтобы для каждого домена был определен конкретный IP-адрес для работы почты, необходимо произвести настройку заголовка HELO в конфигурационном файле по пути /etc/exim4/exim4.conf.template, добавив строку helo_data = ${lookup dnsdb{ptr=$sending_ip_address}{$value}{$primary_hostname}}.
В итоге, конфигурационный файл должен принять вид:
remote_smtp:
driver = smtp
helo_data = ${lookup dnsdb{ptr=$sending_ip_address}{$value}{$primary_hostname}}