Версия 0.1.1, 30 сентября 2026 г. Скачать (94 КБ), SHA-256 4909ff8402b3244711bc13bac96cfc22810ee33d48f80885f87e44809572cdd0. Пошаговая инструкция по установке находится в конце этой страницы, тот же текст доступен в файле INSTALL.md в архиве. Исходный код, тесты и выпуски находятся на GitHub.
Для кого это
Для компаний, которые обслуживают серверы cPanel & WHM для других пользователей. Вы устанавливаете плагин один раз с правами root, после чего он появляется в разделе cPanel » Email для выбранных вами пакетов. Пока вы не включите его в Feature Manager, клиенты не увидят никаких изменений.
Без него клиенту, который хочет выяснить, почему его письма попадают в спам, приходится искать сервис тестирования, открывать почтовый клиент и отправлять письмо вручную. С ним тест запускается кнопкой рядом с почтовыми ящиками, а письмо действительно отправляется с вашего сервера, с его IP, именем HELO, подписью DKIM и через настроенный почтовый ретранслятор.
Что получают клиенты в cPanel
Тестирование
Клиент выбирает почтовый ящик и отправляет либо стандартное тестовое письмо (короткое личное письмо на английском языке с текстовой и HTML-частью), либо собственное сообщение. Для собственного сообщения он указывает тему, вставляет HTML и при необходимости версию в виде обычного текста. Письмо отправляется в точности в таком виде. Exim отправляет его так же, как любое другое письмо этой учетной записи. Примерно через минуту на той же странице появляется отчет со всеми 42 проверками: SPF, DKIM, DMARC и выравнивание, обратная DNS-запись и HELO, TLS, блок-листы IP, SpamAssassin и Rspamd, опубликованные Gmail и Yahoo требования к отправителям, а также содержимое письма. Есть две оценки: техническая по шкале до 100 и классическая по шкале от 0 до 10.
Флажок «Проверить папку у почтовых провайдеров» установлен по умолчанию. Если он установлен, по одной копии письма также отправляется в каждый из наших тестовых почтовых ящиков, всего около 30 писем у 14 провайдеров, включая Gmail, Outlook, Yahoo, GMX и Proton. В Gmail используются общедоступные тестовые почтовые ящики, где любой человек может увидеть тему, имя отправителя и папку. Таблица заполняется в течение 30 минут и показывает Inbox, Spam или Promotions для каждого провайдера. Если провайдер полностью отклонил письмо, это указывается в таблице вместе с ответом его сервера и кодом SMTP из журнала Exim на вашем сервере.
Под оценками находится раздел Что исправить. Если DNS домена размещена на вашем сервере, cPanel может исправить DKIM, SPF и DMARC нажатием кнопки. Плагин показывает текущую и новую версии записи и сначала запрашивает подтверждение. Если DNS размещена в другом месте, клиент получает точную запись для копирования с ее именем, типом и значением. Обратная DNS-запись и собственная A-запись сервера находятся в отдельной группе для администратора сервера, необходимые значения уже указаны. Через несколько минут после проверок появляется письменный план от Email Spam Tester, а кнопка «Проверить еще раз» отправляет новое письмо после добавления записей.
История
Здесь показаны все тесты, отправленные учетной записью, начиная с самого нового: дата, почтовый ящик, использованное письмо, обе оценки и количество попаданий в каждую папку. График показывает изменение оценки от теста к тесту. Для каждого теста перечислены проверки, результат которых изменился по сравнению с предыдущим тестом того же домена. Например, проверка DKIM, которая после исправления перешла из состояния ошибки в успешное, отображается прямо в строке. При открытии теста показывается его отчет и ответы принимающих серверов для каждого провайдера. Последние 200 тестов каждой учетной записи хранятся на вашем сервере.
Постоянный мониторинг
Тест из почтового ящика показывает, как отправляется почта из этого ящика. Но типичная проблема cPanel возникает в другом месте. Сайт WordPress или контактная форма отправляет письмо с адресом отправителя конверта user@hostname, выравнивание SPF нарушается, и ни один тест из почтового ящика этого не покажет. Мониторинг покажет.
Создаваемая при мониторинге невидимая копия покидает ваш сервер тем же путем, что и письмо, с того же IP, с теми же HELO и подписью DKIM. Exim создает ее для каждого письма, отправляемого отслеживаемым доменом, и доставляет на закрытый адрес, принадлежащий этому домену. Поэтому отчет описывает реальный путь, а само письмо доходит до получателей без изменений.
На вкладке «Мониторинг» письма домена показаны в виде ленты. Для каждого письма указаны домен получателя (но не адрес), источник и неудачные проверки. Источниками могут быть веб-почта, почтовый клиент, PHP или WordPress, а также скрипты, вызывающие sendmail. Над лентой находятся краткая сводка за последние 24 часа и предупреждения: DKIM перестал проходить проверку, SPF или DMARC не проходит для одного из источников, IP отправителя попал в блок-лист, принимающие серверы отклоняют письма. Любое письмо можно открыть как технический отчет о его проверках (заголовки письма не включаются). Клиент также может запросить для него план, созданный ИИ.
Мониторинг остается выключенным, пока администратор не разрешит его на сервере. После этого каждый клиент включает его отдельно для своих доменов.
Что вы получаете в WHM
WHM » Plugins » Email Spam Tester представляет собой одну страницу.
- Зарегистрировать этот сервер. До регистрации тесты запускать нельзя. При регистрации отправляются имя хоста сервера, версия cPanel, версия плагина, количество учетных записей и, если вы укажете его, ваш адрес электронной почты. Полученный ключ хранится в файле, доступном для чтения только пользователю root.
- Дневные лимиты на количество тестов для каждой учетной записи (по умолчанию 20) и для сервера (500). Кроме того, наш API устанавливает собственный лимит для каждой установки.
- Кто может использовать плагин. При первой установке функция
email_spam_testerотключается во всех списках функций. Вы включаете ее в WHM » Packages » Feature Manager для нужных списков. При обновлениях этот выбор сохраняется. - Постоянный мониторинг. Параметр "Allow constant monitoring on this server" проверяет текущую конфигурацию Exim, добавляет один пользовательский ACL в два блока исходящей почты Exim и один параметр пользовательского системного фильтра, пересобирает и перезапускает Exim. Если какой-либо этап завершается с ошибкой, все изменения отменяются. Правило сохраняется после пересборки Exim и обновлений cPanel. Рядом с переключателем указаны лимиты: копий на домен в час (20), копий на сервер в час (2 000), отслеживаемых доменов на учетную запись (20) и AI-планов на учетную запись в день (10). Параметр "Disable monitoring on the whole server" удаляет правило таким же способом.
Цена
Пока бесплатно, включая мониторинг. На email-spam-tester.com не нужно создавать учетную запись, и сейчас ничего оплачивать не требуется. Если это когда-нибудь изменится, сначала об этом будет сказано в журнале изменений.
Данные и конфиденциальность
Что передается с вашего сервера:
- при регистрации: данные, перечисленные выше в разделе о WHM;
- при каждом тесте: само письмо в том виде, в котором его получают получатели, включая заголовки, добавленные Exim и содержащие IP-адрес и имя хоста сервера; учетная запись известна нам только по хешу ее имени, вычисленному с ключом;
- при мониторинге: копии писем.
Отчет о тесте работает так же, как на сайте: он остается доступен по своей ссылке, и открыть его может любой, у кого она есть, включая тему письма и данные отправителя. Само письмо удаляется через час после получения, когда все проверки завершены. До удаления любой, у кого есть ссылка, может прочитать его полностью. Часть проверки папок, относящаяся к Gmail, также общедоступна, как описано выше, поэтому конфиденциальные письма лучше тестировать без нее.
Копии для мониторинга содержат реальную переписку, а отчеты по ним доступны только вам. Открыть их может только плагин на вашем сервере, используя ключ установки, публичной ссылки нет. Копия удаляется через два дня после получения, а отчет по ней через 90 дней. История и лента мониторинга остаются на вашем сервере.
Полная политика приведена на странице конфиденциальности.
Вопросы, которые задают хостинг-провайдеры
Меняет ли плагин DNS самостоятельно?
Нет. Запись меняется только тогда, когда клиент нажимает кнопку рядом с найденной проблемой и подтверждает значения до и после изменения, и только если DNS домена размещен на вашем сервере. Кнопки SPF и DMARC только создают отсутствующую запись. Если запись уже существует, клиенту показывается объединенный вариант, который нужно скопировать вручную, кнопка никогда не заменяет существующую запись. Кнопка DKIM может заменить запись, которая не соответствует ключу сервера, но только если такая запись ровно одна. Каждое изменение записывается в журнал учетной записи и в отдельный журнал в каталоге /var/cpanel/email_spam_tester/, который может изменять только root. Вместе с изменением сохраняется запись, которую DNS возвращал до него.
Мой сервер отправляет исходящую почту через smarthost. Будет ли плагин работать?
Должен, но я пока не тестировал его за smarthost. Тестовое письмо отправляется тем же способом, что и вся почта учетной записи, поэтому в отчете указываются IP и имя ретранслятора, поскольку именно их видят получатели. Исправлять обратную запись DNS или исключать этот IP из блок-листа должен тот, кто управляет ретранслятором. При этом теряется одна часть данных. Причины, по которым провайдер отказывается принимать письмо, берутся из журнала Exim на вашем сервере, а при использовании ретранслятора в этом журнале есть только его ответ. Письмо, которое ретранслятор принял, а провайдер позднее отклонил, может отображаться со статусом «Не получено». Копии для мониторинга также проходят через ретранслятор.
Влияет ли мониторинг на доставляемость?
Письмо клиента отправляется как обычно, без изменений, и получатели ничего не замечают, поскольку копия доставляется отдельно на наш адрес. Мониторинг учитывается в почасовом лимите отправки. Каждая копия один раз засчитывается в лимит домена «максимальное количество писем в час», поэтому домен, близкий к своему лимиту, достигнет его раньше. При настройках по умолчанию разница составляет не более 20 писем в час. После отправки этого количества копий за час письма продолжают уходить, но уже без копий.
Проверка папок тоже учитывается в почасовом лимите?
Да, для нее отправляется около 30 писем. Перед запуском плагин проверяет, сколько писем домен еще может отправить в текущем часу, и сообщает клиенту, если оставшегося количества недостаточно.
Что было протестировано на рабочем сервере?
Поддерживается cPanel & WHM 134 или новее. Пока я протестировал плагин на рабочем сервере с версией 138 (11.138) на Ubuntu 24.04. Тестирование охватывало установку и обновление, регистрацию, переключатель функции, тесты с проверкой папок и без нее, историю и мониторинг писем из всех четырех источников. Пока не тестировались на рабочем сервере другие операционные системы, CloudLinux с CageFS, кнопки DKIM, SPF и DMARC (DNS тестового сервера размещен в другом месте), сервер, отправляющий почту через smarthost, и отключение мониторинга для всего сервера, для которого выполнялся только пробный запуск без внесения изменений. Если вы запустите плагин в одном из этих вариантов, расскажите, как все прошло.
Установка, шаг за шагом
В этом руководстве предполагается, что у вас есть root-доступ к серверу и вы раньше не использовали плагины WHM. Каждую команду ниже можно копировать и вставлять без изменений.
1. Что потребуется
- Root-доступ к серверу по SSH.
- cPanel & WHM 134 или новее с темой Jupiter.
- AlmaLinux, Rocky Linux, CloudLinux или Ubuntu 24.04. Пока плагин был протестирован в рабочей среде только на cPanel & WHM 138 (11.138) с Ubuntu 24.04.
- Открытый исходящий порт 25, чтобы почта с сервера могла поступать на
t.email-spam-tester.com. Многие провайдеры VPS блокируют его по умолчанию. Вместо него должен работать ретранслятор (smarthost), но это пока не проверялось. - Исходящее HTTPS-соединение с
email-spam-tester.com.
Оба соединения можно проверить перед установкой. Первая команда должна вывести строку, начинающуюся с 220, а вторая должна вывести 200:
timeout 10 bash -c 'exec 3<>/dev/tcp/t.email-spam-tester.com/25 && head -1 <&3'
curl -s -o /dev/null -w '%{http_code}\n' https://email-spam-tester.com/health
2. Установка
Войдите на сервер по SSH как root и выполните следующие команды по очереди.
Перейдите в домашний каталог root, где будет находиться плагин:
cd /root
Скачайте архив и его контрольную сумму. При успешном выполнении команда ничего не выводит:
curl -fsSLO https://email-spam-tester.com/cpanel/latest.tar.gz
curl -fsSLO https://email-spam-tester.com/cpanel/latest.tar.gz.sha256
Убедитесь, что файл скачан без повреждений. Вы должны увидеть latest.tar.gz: OK. Если вы видите FAILED, скачайте файл еще раз и не продолжайте установку:
sha256sum -c latest.tar.gz.sha256
Распакуйте архив в /root/email-spam-tester-cpanel. Команда снова ничего не выводит:
mkdir -p email-spam-tester-cpanel
tar -xzf latest.tar.gz -C email-spam-tester-cpanel --strip-components=1
Запустите установщик. Сначала он проверит каждый файл, а затем скопирует файлы в нужные места:
cd /root/email-spam-tester-cpanel && ./install.sh
Вы должны увидеть Checking Perl syntax…, Root module…, cPanel pages…, несколько строк от собственного установщика плагинов cPanel, Switching the feature off in all feature lists… и WHM page…. Последние строки должны выглядеть так:
Installed. Next: WHM » Plugins » Email Spam Tester » Register this server.
Customers do not see it yet: turn on email_spam_tester in WHM » Feature Manager
for the feature lists (packages) that should have it.
Не удаляйте каталог /root/email-spam-tester-cpanel. Обновления и uninstall.sh запускаются из него.
3. Регистрация сервера в WHM
- Войдите в WHM как root.
- В левом меню откройте Plugins и нажмите Email Spam Tester.
- В блоке Registration указано "Not registered". Поле электронной почты администратора под ним заполнять необязательно.
- Нажмите Register this server.
В верхней части страницы появится зеленая строка "Registered. Installation #…", а в блоке теперь будут указаны Status: Registered, номер установки и начало ключа. При регистрации отправляются имя хоста сервера, версия cPanel, версия плагина, количество учетных записей и адрес электронной почты, если вы его указали. Ключ хранится в /var/cpanel/email_spam_tester/config.json и доступен для чтения только пользователю root.
На этой же странице можно изменить дневные лимиты: по умолчанию 20 тестов на учетную запись и 500 на сервер.
4. Включение для клиентов
После установки плагин никому не виден. Вы сами выбираете, для каких пакетов его включить.
- Узнайте, какой список функций используют ваши пакеты: откройте WHM » Packages » Edit a Package, выберите пакет и найдите поле Feature List. На многих серверах используется
default. - Откройте WHM » Packages » Feature Manager.
- В разделе Manage feature list выберите этот список и нажмите Edit.
- Найдите в списке Email Spam Tester (если список длинный, используйте поиск в браузере), установите флажок и нажмите Save.
- Повторите эти действия для каждого списка функций, в котором должен быть доступен плагин.
Теперь клиенты с этими пакетами увидят Email Spam Tester в cPanel, в разделе Email. Не забывайте также устанавливать этот флажок в списках функций, которые создадите позже.
5. Отправка первого теста от имени клиента
Войдите в cPanel как один из этих клиентов. В WHM можно открыть Account Information » List Accounts и нажать значок cPanel рядом с учетной записью.
- Откройте Email » Email Spam Tester. На странице есть три вкладки: Test, History и Monitoring.
- На вкладке Test выберите почтовый ящик. Если в учетной записи нет ни одного ящика, сначала создайте его в разделе Email » Email Accounts.
- Оставьте выбранным Standard test email и не снимайте флажок Check the folder at email providers.
- Нажмите Send test.
На странице отображается ход выполнения: проверка записей DNS, отправка и ожидание доставки письма. Примерно через минуту появится отчет. В нем есть две оценки, техническая по шкале до 100 и классическая по шкале от 0 до 10, а под ними раздел What to fix. В этом списке есть кнопка для исправления записи через cPanel на этом сервере, точная запись для копирования, если DNS размещен в другом месте, а также значения обратной записи DNS для вас как администратора сервера. Ниже приведены все проверки. Раздел Where the email landed заполняется в течение следующих 30 минут и показывает Inbox, Spam или Promotions для каждого почтового провайдера, а также ответ провайдера, если он отклонил письмо. Через несколько минут после завершения проверок появляется письменный план.
Проверка папок отправляет около 30 писем. Если в почасовом лимите отправки домена недостаточно места для них, страница сообщит об этом до отправки.
6. Постоянный мониторинг (необязательно)
Когда мониторинг включен для домена, Exim отправляет невидимую копию каждого исходящего письма домена на закрытый адрес Email Spam Tester, а клиент получает технический отчет по каждому письму. Получатели ничего не видят. Каждая копия один раз учитывается в почасовом лимите отправки домена. По умолчанию отправляется не более 20 копий в час.
- В разделе WHM » Plugins » Email Spam Tester найдите блок Constant monitoring и нажмите Allow constant monitoring on this server. Плагин проверит конфигурацию Exim, добавит свое правило, пересоберет и перезапустит Exim, а при сбое на любом этапе вернет все в исходное состояние. При успешном выполнении вы увидите "Constant monitoring is allowed on this server: the Exim rule is in, Exim was rebuilt and restarted.", а в блоке состояние правила будет указано как Active.
- Клиент открывает вкладку Monitoring в cPanel, нажимает Turn on рядом с доменом и подтверждает действие. Отправленные после этого письма появляются на вкладке в течение одной-двух минут.
Чтобы отключить мониторинг для всего сервера, нажмите Disable monitoring on the whole server в том же блоке.
7. Обновление
Скачайте и распакуйте новую версию поверх старой, затем снова запустите установщик:
cd /root
curl -fsSLO https://email-spam-tester.com/cpanel/latest.tar.gz
curl -fsSLO https://email-spam-tester.com/cpanel/latest.tar.gz.sha256
sha256sum -c latest.tar.gz.sha256
tar -xzf latest.tar.gz -C email-spam-tester-cpanel --strip-components=1
cd /root/email-spam-tester-cpanel && ./install.sh
В конце должно появиться сообщение "Updated. The registration, limits and feature settings are unchanged." Если мониторинг разрешен, установщик также обновит правило Exim.
8. Удаление
cd /root/email-spam-tester-cpanel && ./uninstall.sh
Эта команда удаляет правило мониторинга из Exim, отключает мониторинг для каждого домена и удаляет плагин из cPanel и WHM. В конце появляется сообщение "Removed. The key is kept in /var/cpanel/email_spam_tester (use --purge to delete it)." Чтобы также удалить ключ, вместо этого выполните ./uninstall.sh --purge.
Записи DNS никогда не изменяются и не удаляются, включая записи, созданные клиентами с помощью кнопок плагина.
9. Если что-то пошло не так
Клиенты не видят значок. Функция отключена в списке функций их пакета. Повторите шаг 4 и проверьте, какой список функций на самом деле использует их пакет.
На странице указано "The server administrator has not activated Email Spam Tester in WHM yet". Сервер не зарегистрирован. Выполните шаг 3.
Не удается выполнить регистрацию. Причина указана в красном сообщении в верхней части страницы WHM. Чаще всего сервер не может подключиться к email-spam-tester.com по HTTPS. Выполните проверку с помощью curl из шага 1, она должна вывести 200, и проверьте правила межсетевого экрана для исходящего трафика.
Тест сообщает, что письмо не было получено в течение 3 минут. Письмо застряло в очереди или было отклонено. Выполните проверку порта 25 из шага 1. Если команда ничего не выводит или завершается по тайм-ауту, ваш провайдер блокирует исходящий порт 25. Попросите его открыть порт или отправляйте почту через ретранслятор. Чтобы узнать, что Exim сделал с письмом, выполните:
grep 't.email-spam-tester.com' /var/log/exim_mainlog | tail -5
Клиент также может проверить почтовый ящик в разделе Email » Track Delivery.
Страницы на cpanel.<domain> иногда возвращают ошибку 502. Это связано с прокси Apache для служебных поддоменов cPanel и затрагивает все страницы cPanel, а не только этот плагин. Прямой адрес https://<domain>:2083 этой проблеме не подвержен. Чтобы исправить ее, откройте WHM » Service Configuration » Apache Configuration » Include Editor, выберите Pre VirtualHost Include для всех версий, добавьте следующие строки и сохраните изменения:
<IfModule setenvif_module>
SetEnvIfNoCase Host "^(cpanel|webmail|whm|webdisk|cpcalendars|cpcontacts)\." proxy-nokeepalive=1 proxy-initial-not-pooled=1
</IfModule>
Затем примените их:
apachectl configtest && /scripts/rebuildhttpdconf && /scripts/restartsrv_httpd
10. Поддержка
Напишите на hi@email-spam-tester.com. Если установка завершилась с ошибкой, приложите вывод ./install.sh. Если результаты теста выглядят неверно, приложите ссылку на отчет. Дополнительная информация о плагине доступна по адресу https://email-spam-tester.com/cpanel-integration/.