- Home »

Email и рассылки – Как ограничить рассылку с сервера?
Введение: Почему важно ограничивать рассылку с сервера
Если ты владелец сайта, вебмастер, SEO-шник или просто держишь VPS для своих проектов — вопрос рассылки с сервера (email-рассылки) рано или поздно встанет ребром. Даже если ты не рассыльщик и не спамер, а просто отправляешь уведомления юзерам, заявки из формы или пароли — всегда есть риск, что твой сервер начнёт слать слишком много писем, и тебя забанят, занесут в чёрный список или просто отрежут SMTP.
В этой статье я разложу по полочкам, как ограничить рассылку с сервера — чтобы не налететь на блокировки, не получить бан на IP и не угробить репутацию домена. Будет просто, но по сути, без воды и с реальными примерами.
Зачем вообще ограничивать рассылку?
- Безопасность: Если на сервере найдётся дырка (или кто-то зальёт шелл), злоумышленники могут устроить массовую рассылку от твоего имени. Итог — IP в чёрных списках, письма не доходят даже тебе.
- Репутация: Если отправлять слишком много писем за короткое время, твой домен и IP быстро попадут в спам-листы (Spamhaus, Barracuda, etc).
- Стабильность работы: Массовая рассылка может нагрузить сервер, уронить сайт или вообще привести к блокировке хостером.
- Законодательство: В некоторых странах за несанкционированную рассылку могут и к ответственности привлечь.
Основные способы ограничить рассылку с сервера
Вот тебе сразу чек-лист подходов:
- Ограничение на уровне почтового сервера (Postfix, Exim, Sendmail и т.п.)
- Ограничение через панель управления (ISPmanager, cPanel, DirectAdmin и др.)
- Контроль через скрипты/приложения (например, WordPress, Bitrix, Joomla)
- Использование внешних SMTP-сервисов с лимитами (Mailgun, SendGrid, Yandex360, Gmail API)
- Мониторинг и алерты (fail2ban, logwatch, custom-скрипты)
1. Ограничения на уровне почтового сервера
Самый надёжный способ — ограничить рассылку прямо в конфиге почтовика. Это работает для VPS и выделенных серверов, где ты сам настраиваешь Postfix, Exim или Sendmail.
Postfix
- default_process_limit — ограничивает число одновременных процессов postfix.
- smtp_destination_rate_delay — задержка между доставкой писем на один SMTP-сервер.
- smtpd_client_message_rate_limit — ограничивает количество писем от одного клиента за минуту.
# Ограничить до 100 писем в час с одного IP
smtpd_client_message_rate_limit = 100
Более тонкая настройка — через policyd (https://wiki.policyd.org/) или postfwd (http://postfwd.org/).
Exim
- smtp_accept_max_per_host — сколько соединений с одного IP.
- smtp_accept_max_per_connection — сколько писем за одно соединение.
- message_rate_limit — сколько писем в минуту/час.
# В секции main config
smtp_accept_max_per_host = 5
message_rate_limit = 100 / 1h
Sendmail
- Менее гибкий, но можно использовать confMAX_RCPTS_PER_MESSAGE и сторонние модули.
2. Ограничения через панели управления
Если ты пользуешься ISPmanager, cPanel, Plesk, VestaCP — там обычно есть лимиты на рассылку для каждого домена или пользователя.
- В cPanel — Email -> Email Sending Limits
- В ISPmanager — Почта -> Ограничения
- В Plesk — Почта -> Настройки -> Ограничения на отправку
Ставь лимиты — например, 200 писем в сутки на домен или пользователя. Это спасёт, если кто-то из клиентов решит “пошутить” или твой сайт взломают.
3. Контроль на уровне скриптов и приложений
Если у тебя WordPress, Joomla, Bitrix или самопис — можно ограничивать отправку писем на уровне кода. Например, через плагины или модули:
- WordPress: WP Mail Logging + WP Mail SMTP (там можно настроить лимиты и логирование)
- Bitrix: В настройках почты можно указать лимит отправки за период
- Joomla: Плагины типа AcyMailing позволяют ограничить скорость рассылки
Если самопис — добавь очередь писем и проверку количества отправленных за час/сутки.
4. Внешние SMTP-сервисы с лимитами
Самый надёжный вариант — не рассылать с сервера вообще, а использовать сторонний SMTP-сервис:
Плюсы:
- Они сами ограничивают рассылку (например, 200-500 писем в день на бесплатке)
- Не палится твой серверный IP
- Есть логирование, отслеживание доставляемости
Минус — на больших объёмах платно, но для большинства задач (уведомления, формы) хватает бесплатного тарифа.
5. Мониторинг и алерты
Профи всегда мониторят логи почтовика и используют алерты. Например:
- fail2ban — можно настроить фильтр на подозрительную активность в логах почтовика и банить IP-шники
- logwatch — присылает отчёты по логам, видно всплески
- Скрипты на bash/python — считаешь количество отправленных писем за период и шлёшь себе алерт, если превышено
# Пример простого bash-скрипта для подсчёта писем postfix за последний час
grep "$(date +"%b %d %H")" /var/log/mail.log | grep "status=sent" | wc -l
Кейсы: плюсы и минусы разных подходов
Позитивный опыт
- Владелец интернет-магазина поставил лимит 200 писем/сутки на уровне Postfix. Когда сайт взломали и попытались рассылать спам, сервер отправил только 200 писем, после чего заблокировал рассылку. В итоге — IP остался чистым, домен не попал в спам-листы.
- Дорвейщик использует только внешние SMTP (Mailgun), чтобы не светить свои IP. Даже если рассылка ушла в спам — сервер не попал в блэк-листы, а на новый домен подключил свежий SMTP.
Негативный опыт
- SEO-шник не ограничил рассылку на WordPress-сайте, его взломали и через contact form отправили 20 000 спам-писем. Итог — IP в 5 чёрных списках, письма клиентам не доходят, долго чистил репутацию.
- Владелец сайта поставил лимит только в панели управления, но на сервере был открыт relay для localhost. Взломщик отправил рассылку через shell-скрипт, лимит не сработал — сервер попал в бан.
Команды и примеры конфигов
Postfix: ограничить отправку
# /etc/postfix/main.cf
smtpd_client_message_rate_limit = 100
anvil_rate_time_unit = 3600s
Это ограничит отправку до 100 писем в час с одного IP.
Exim: лимит на отправку
# /etc/exim/exim.conf
smtp_accept_max_per_host = 3
message_rate_limit = 50 / 1h
Панель ISPmanager
- Почта → Ограничения → “Максимум писем в сутки” — ставим 100-200
WordPress: лимит через плагин
- Плагин Email Limit — ставишь лимит в админке
Бонус: ошибки новичков, советы и мифы
Ошибки новичков
- Ограничивают только в панели, забывая про серверный SMTP (php mail(), sendmail и т.п.)
- Думают, что “меня это не коснётся”, пока не взломают сайт или форму обратной связи
- Используют один SMTP-аккаунт для всех сайтов и клиентов — если его забанят, все проекты в пролёте
- Не мониторят логи, не замечают, что сервер уже попал в спам-листы
Советы по выбору подхода
- Для shared-хостинга — всегда ставь лимиты в панели и не доверяй подозрительным плагинам
- Для VPS — ограничивай на уровне почтовика и мониторь логи
- Для массовых рассылок — используй внешние SMTP, не рискуй своим сервером
- Для критичных проектов — делай алерты и резервные SMTP-аккаунты
Мифы
- “Если мало писем — не попадёшь в спам.” — Не всегда! Важно не только количество, но и содержание, репутация, настройки DNS (SPF, DKIM, DMARC)
- “Внешний SMTP решает все проблемы.” — Да, но если аккаунт забанят, восстановить сложно, а иногда и невозможно.
- “Можно просто отключить sendmail и всё.” — Нет, PHP mail() может использовать другие пути, а злоумышленник может запустить свой SMTP.
Похожие решения и лайфхаки
- Ограничение через файрволл (iptables) — можно закрыть порт 25/465/587 для всего, кроме определённых приложений
- Использование greylisting — помогает от автоматических ботов, но не спасает от ручных атак
- Проверка на вирусы и шеллы (clamscan, Maldet) — чтобы не дать злоумышленнику отправлять рассылки
Заключение: Итоги и рекомендации
Ограничение рассылки с сервера — это must-have для любого, кто держит сайты на VPS, shared-хостинге или выделенном сервере. Неважно, кто ты: SEO-шник, дорвейщик, вебмастер или просто владелец корпоративного сайта — настрой лимиты, мониторь логи, используй внешние SMTP для массовых рассылок и всегда держи руку на пульсе.
Советую начать с простого: поставь лимиты в панели и на почтовике, проверь, нет ли открытого relay, логируй отправку и подключи алерты. Для массовых рассылок — только внешние сервисы. И не верь мифам — лучше перебдеть, чем потом чистить репутацию домена и IP.
Если нужна документация — вот полезные ссылки:
Будь умнее — ограничь рассылку заранее и спи спокойно!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.