如何限制共享主机环境中的用户电子邮件发送 - LAMP 堆栈

如何限制共享主机环境中的用户电子邮件发送 - LAMP 堆栈

操作系统 - Ubuntu,PHP 版本 - 5.3,MTA - Exim。

如何限制虚拟主机在每个时间间隔(最好是几小时,但几天也可以)使用标准 PHP mail() 函数发送的电子邮件数量。

PHP 进程以单独的用户权限运行,每个虚拟主机的权限都不同。

是否有其他方法可以防止共享主机客户端大量发送垃圾邮件,但允许从 PHP 发送有意义的邮件?

答案1

好吧,你也许可以做一些事情,让 Exim 只允许每个用户每小时发送有限数量的邮件。Exim 中显然没有直接的功能,但应该可以做到:

http://osdir.com/ml/debian.user.isp/2002-12/msg00094.html

也就是说,用户仍然可以直接通过他们选择的 SMTP 服务器发送邮件。为了防止这种情况,您必须阻止端口 25 传出(防火墙、iptables 或类似)。但可以说这不是您的问题,而是 STMP 服务器管理员的问题……

答案2

您应该在路由器上执行此操作。(或防火墙)。

根据您的设置,VM 服务器本身可能是一个路由器。

不幸的是,您可能计算的是每分钟的 TCP 连接数,而不是每分钟的 RCPT TO 数。但考虑到垃圾邮件发送者必须提交的电子邮件费率与合法电子邮件发送者之间的比率,这并不重要。(远远大于他们可以可靠地放入一封电子邮件中的 RCPT TO 数量)。

您可以要求他们使用您的 SMTP 服务器。如果他们是客户,那么即使您增加了成本,降低您提供的服务水平也可能不值得。但是,如果您在合理的速率限制下仍存在严重的垃圾邮件问题,并且除非他们使用您的 SMTP 服务器(它可以进行比防火墙更深入的分析),否则您切换到极端速率限制,我希望客户能够理解。如果客户被 NAT 到同一个 IP 地址,要求他们共享一个 SMTP 服务器是完全合理的(他们无论如何都共享一个入站地址,他们共享反垃圾邮件保护风险)。

相关内容