如何在共享主機環境中限制使用者電子郵件發送 - LAMP 堆棧
作業系統 - 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伺服器管理員的問題……
您應該在路由器上執行此操作。(或防火牆)。
VM 伺服器本身可能是路由器,具體取決於您的設置。
不幸的是,您可能會計算每分鐘的 TCP 連接數,而不是每分鐘的 RCPT TO。但考慮到垃圾郵件發送者必須送出的電子郵件率與合法人之間的比率,這並不重要。(遠遠大於他們可以可靠地放入一封電子郵件的 RCPT TO 的數量)。
您可以要求他們使用您的 SMTP 伺服器。如果他們是客戶,那麼即使您增加了成本,降低您提供的服務水平也可能不值得。但是,如果您在合理的速率限制下遇到嚴重的垃圾郵件問題,並且您切換到極端速率限制,除非他們使用您的 SMTP 伺服器(它可以比防火牆進行更深入的分析),我希望客戶能夠理解。如果客戶被 NAT 到同一個 IP 地址,要求他們共享一個 SMTP 伺服器是完全合理的(無論如何,他們共享一個入站地址,他們共享反垃圾郵件保護風險)。