ОС - Ubuntu, версия PHP - 5.3, MTA - Exim.
Как вы можете ограничить количество сообщений электронной почты, которые виртуальный хост может отправлять с помощью стандартной функции PHP mail () за интервал времени (предпочтительно часы, но дни в порядке).
Процессы PHP выполняются с отдельными привилегиями пользователей, разными для каждого виртуального хоста.
Есть ли у них какие-либо другие способы предотвратить обширную рассылку спама от клиентов виртуального хостинга, но разрешить разумную отправку почты с PHP?
Что ж, вы, вероятно, можете что-нибудь взломать, чтобы Exim разрешал только ограниченное количество писем на пользователя в час. Очевидно, что непосредственно в exim нет ничего, но это должно быть выполнимо:
http://osdir.com/ml/debian.user.isp/2002-12/msg00094.html
Тем не менее, пользователи по-прежнему могут напрямую отправлять почту через SMTP-сервер по своему выбору. Чтобы предотвратить это, вам придется заблокировать исходящий порт 25 (брандмауэр, iptables или аналогичный). Но, возможно, это не ваша проблема, а проблема администратора сервера STMP ...
Вы должны делать это на маршрутизаторе. (Или межсетевой экран).
Сам сервер виртуальной машины может быть маршрутизатором, в зависимости от ваших настроек.
К сожалению, вы, вероятно, будете считать TCP-соединения в минуту, а не RCPT TO в минуту. Но на самом деле это не имеет значения, учитывая соотношение между показателями электронной почты, которые спамер должен передать, и кем-то законным. (намного больше, чем количество RCPT TO, которые они могут надежно разместить в одном электронном письме).
Вы можете потребовать от них использовать ваш SMTP-сервер. Если они клиенты, то, вероятно, не стоит снижать уровень предоставляемых вами услуг, даже если вы увеличиваете свои расходы. Но если у вас есть серьезная проблема со спамом, несмотря на разумное ограничение скорости, и вы переключаетесь на экстремальное ограничение скорости, если только они не используют ваш SMTP-сервер (который может выполнять гораздо более глубокий анализ, чем брандмауэр), я ожидаю, что клиенты поймут. Если клиенты преобразуются через NAT к одному и тому же IP-адресу, вполне разумно попросить их использовать один SMTP-сервер (в любом случае у них общий входящий адрес, они разделяют риск защиты от спама).