Email Spam Tester

Email Spam Tester › Email Spam Tester для cPanel & WHM

Email Spam Tester для cPanel & WHM

Плагін для хостинг-провайдерів. Ваші клієнти знаходять його в cPanel у розділі Email, надсилають справжній лист з однієї зі своїх поштових скриньок і отримують список того, що потрібно виправити, з точним DNS-записом або кнопкою cPanel поруч із кожним виявленим недоліком.

Версія 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 вимоги до відправників, а також вміст листа. Є дві оцінки: технічна від 0 до 100 і класична від 0 до 10.

Прапорець «Перевірити папку в поштових провайдерів» установлено за замовчуванням. Якщо його залишити, по одній копії листа також надсилається до кожної з наших тестових поштових скриньок, загалом близько 30 листів у 14 провайдерів, зокрема Gmail, Outlook, Yahoo, GMX і Proton. У Gmail це загальнодоступні тестові скриньки, де будь-хто може побачити тему, ім'я відправника та папку. Таблиця заповнюється протягом щонайбільше 30 хвилин і показує для кожного провайдера папку «Вхідні», «Спам» або «Реклама». Якщо провайдер одразу відхилив лист, це зазначається в таблиці разом із відповіддю його сервера, включно з кодом 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-адреса відправника потрапила до списку блокування, сервери одержувачів відхиляють листи. Кожен лист можна відкрити як технічний звіт про його перевірки (заголовки листа не додаються), а клієнт може запросити для нього план від AI.

Моніторинг залишається вимкненим, доки адміністратор не дозволить його на сервері. Після цього кожен клієнт вмикає його для власних доменів.

Що ви отримуєте у WHM

WHM » Plugins » Email Spam Tester складається з однієї сторінки.

Ціна

Наразі безкоштовно, моніторинг включено. На email-spam-tester.com не потрібно створювати обліковий запис, і зараз нічого не потрібно платити. Якщо це колись зміниться, про це спочатку буде повідомлено в журналі змін.

Дані та конфіденційність

Що залишає ваш сервер:

Звіт про тест працює так само, як і на сайті: він залишається доступним за своїм посиланням, і будь-хто, хто має посилання, може його відкрити, включно з темою та відправником. Сам лист видаляється через годину після отримання, коли всі перевірки завершено. До цього моменту будь-хто, хто має посилання, може прочитати його повністю. Частина перевірки папки для Gmail також загальнодоступна, як описано вище, тому конфіденційні листи краще тестувати без неї.

Копії для моніторингу є справжнім листуванням, а звіти про них конфіденційні. Відкрити їх може лише плагін на вашому сервері за допомогою ключа встановлення, загальнодоступного посилання немає. Копія видаляється через два дні після отримання, а її звіт через 90 днів. Історія та стрічка моніторингу зберігаються на вашому сервері.

Повну політику наведено на сторінці конфіденційності.

Запитання від хостинг-провайдерів

Чи змінює він DNS самостійно?

Ні. Запис змінюється лише тоді, коли клієнт натискає кнопку поруч із виявленою проблемою та підтверджує значення до й після зміни, і лише якщо DNS домену розміщено на вашому сервері. Кнопки SPF і DMARC лише створюють відсутній запис. Якщо запис уже існує, він відображається в об’єднаному вигляді, щоб клієнт скопіював його вручну, і кнопка ніколи його не замінює. Кнопка DKIM може замінити запис, який не відповідає ключу сервера, але лише якщо такий запис рівно один. Кожна зміна записується в журнал облікового запису та в журнал у каталозі /var/cpanel/email_spam_tester/, який може редагувати лише root. Також зберігається запис DNS, який сервер повертав до зміни.

Мій сервер пересилає вихідну пошту через smarthost. Чи працюватиме плагін у такому разі?

Має працювати, але я ще не тестував його за smarthost. Тестовий лист надсилається так само, як і вся пошта з облікового запису, тому у звіті відображаються IP та ім’я ретранслятора, адже саме їх бачать одержувачі. Виправлення його зворотного DNS або вилучення зі списку блокування в такому разі є завданням того, хто керує ретранслятором. Одна частина інформації втрачається. Причини, які провайдер указує під час відхилення листа, беруться з журналу Exim на вашому сервері, а з ретранслятором цей журнал містить лише відповідь ретранслятора. Лист, який ретранслятор прийняв, а провайдер згодом відхилив, може відображатися як "Not received". Копії для моніторингу також проходять через ретранслятор.

Чи впливає моніторинг на доставлюваність?

Лист клієнта надсилається без змін, як і раніше, а його одержувачі нічого не бачать, оскільки копія надсилається окремо на нашу адресу. Моніторинг впливає на погодинний ліміт надсилання. Кожна копія один раз зараховується до ліміту домену "max emails per hour", тому домен, який наближається до свого ліміту, досягне його раніше, максимум на 20 листів за годину зі стандартним налаштуванням. Після досягнення цієї кількості копій протягом години листи надсилаються без копії.

Чи зараховується перевірка папок до погодинного ліміту?

Так, вона надсилає близько 30 листів. Перед запуском плагін перевіряє, скільки листів домен ще може надіслати протягом поточної години, і повідомляє клієнта, якщо цього недостатньо.

Що було протестовано на робочому сервері?

Підтримується cPanel & WHM 134 або новішої версії. Наразі я протестував плагін на робочому сервері з версією 138 (11.138) на Ubuntu 24.04. Перевірено встановлення й оновлення, реєстрацію, перемикач функції, тести з перевіркою папок і без неї, історію та моніторинг листів з усіх чотирьох джерел. Ще не протестовано на робочому сервері інші операційні системи, CloudLinux із CageFS, кнопки DKIM, SPF і DMARC (DNS тестового сервера розміщено в іншому місці), сервер, який пересилає пошту через smarthost, а також вимкнення моніторингу для всього сервера, для якого виконано лише пробний запуск без внесення змін. Якщо ви запустите плагін в одному з цих середовищ, я хотів би дізнатися, як усе пройшло.

Встановлення, крок за кроком

У цьому посібнику передбачається, що ви маєте root-доступ до сервера й раніше не використовували плагіни WHM. Кожну наведену нижче команду можна скопіювати та вставити без змін.

1. Що вам потрібно

Обидва з'єднання можна перевірити перед установленням. Перша команда має вивести рядок, що починається з 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

  1. Увійдіть у WHM як root.
  2. У лівому меню відкрийте Plugins і натисніть Email Spam Tester.
  3. У блоці Registration вказано "Not registered". Поле електронної адреси адміністратора під ним необов'язкове.
  4. Натисніть Register this server.

Угорі з'явиться зелений рядок "Registered. Installation #…", а в блоці тепер буде вказано Status: Registered, номер установлення та початок ключа. Під час реєстрації надсилаються ім'я хоста сервера, версія cPanel, версія плагіна, кількість облікових записів і електронна адреса, якщо ви її вказали. Ключ зберігається у /var/cpanel/email_spam_tester/config.json, читати його може лише root.

На цій самій сторінці можна змінити добові ліміти: за замовчуванням 20 тестів на обліковий запис і 500 на сервер.

4. Увімкнення для клієнтів

Після встановлення плагін ніхто не бачить. Ви самі визначаєте, для яких пакетів він буде доступний.

  1. Дізнайтеся, який список функцій використовують ваші пакети: WHM » Packages » Edit a Package, виберіть пакет і подивіться значення поля Feature List. На багатьох серверах це default.
  2. Відкрийте WHM » Packages » Feature Manager.
  3. У розділі Manage feature list виберіть цей список і натисніть Edit.
  4. Знайдіть у списку Email Spam Tester (якщо список довгий, скористайтеся функцією пошуку в браузері), установіть прапорець і натисніть Save.
  5. Повторіть це для кожного списку функцій, у якому має бути доступний плагін.

Тепер клієнти з цими пакетами бачитимуть Email Spam Tester у cPanel, у розділі Email. Не забувайте також установлювати цей прапорець у списках функцій, які створите пізніше.

5. Надсилання першого тесту від імені клієнта

Увійдіть у cPanel як один із цих клієнтів. У WHM для цього можна відкрити Account Information » List Accounts і натиснути значок cPanel поруч з обліковим записом.

  1. Відкрийте Email » Email Spam Tester. На сторінці є три вкладки: Test, History і Monitoring.
  2. На вкладці Test виберіть поштову скриньку. Якщо в обліковому записі немає жодної, спочатку створіть її в Email » Email Accounts.
  3. Залиште вибраним Standard test email і не знімайте прапорець Check the folder at email providers.
  4. Натисніть 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 копій на годину.

  1. У 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.
  2. Клієнт відкриває вкладку 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/.