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

OS – Ubuntu,PHP版本 – 5.3,MTA – Exim。

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

PHP进程使用不同的用户权限运行,对于每个虚拟主机都是不同的。

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

那么,你可能会破解一些东西,所以Exim只允许每个用户和小时有限的邮件数量。 Exim中显然没有直接的,但应该是可行的:

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

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

你应该在路由器上这样做。 (或防火墙)。

VM服务器本身可能是路由器,具体取决于您的设置。

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

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