大家好我有几个问我想问。我在共享服务器上使用hostgators商业计划托管,当我与他们谈论限制时,他们告诉我发送电子邮件的限制是每小时500(我想但不太确定可能是1000,但它不是事情。)我认为当我的工作上线时我会遇到问题,所以我想制作某种脚本(PHP)来监控外发电子邮件,允许发送350封电子邮件,其余部分保留直到小时过去,然后发送另外350等等,等等。我正在计划使用XML RPC为引擎构建更新系统并与远程服务器通信,如果有任何可用的更新可以开始阅读它们并且 将它们应用到系统 < / strong> 由CRON触发。这就是我想提出的问题:
1。电子邮件监视器:
1.1 如何获取发送的电子邮件数量?
1.2 我应该如何为它设置CRON?(如果我设置CRON的时间少于5分钟,我认为它将被删除。)或者我应该使用替代方案,它应该是什么?
1.3 有人可以给我一个示例脚本吗?
的 2。 XML RPC更新程序:
2.1 制作它的最佳方法是什么?
2.2 除了“Check” - &gt;“Response [true | false]” - &gt;“阅读更新的内容” - &gt;“写入更新的内容”时,必须采用的方法是什么?
2.3 制作这样的系统是一个好主意,最安全的方法是什么?
答案 0 :(得分:1)
您可以随时在数据库中设置一个表格,用于设置特定日期发送的电子邮件数量。您可以在PHP查询中使用UPDATE email_count SET emails = emails + 1 WHERE date = $current_date
($current_date
是PHP必须从时间戳获取的变量),在发送电子邮件之前,使用SELECT
查询检查此值。
当然,你需要决定你想要什么。禁止发送电子邮件(我将以用户的注册确认电子邮件为例)如果达到限制,或者只是限制(推迟)它们。如果您决定禁止,您的工作很简单:如果金额已经达到限额,您只需停用注册表。
如果你决定节流,你将面临一个非常复杂的问题,需要一个复杂的解决方案。您需要生成电子邮件(作为其已制作的文本格式,或仅生成变量内容),并将它们与To:
值一起存储在数据库中。您还需要准确性和设置cron
,以便在下一个小时内,您首先解析前一小时内的“遗留”电子邮件。
但是,如果前一天不仅会生成那么多电子邮件,而且之后的一小时会发生“堵塞”,该怎么办?您需要衡量和建模您网站的使用情况并获得最佳示例。可能会有一些方程式可以帮助您设置限制模式。对于可能的遗留电子邮件,每小时保留一半的限制?考虑一些population statistics methods?有各种选择。
请注意,如果服务器上安装了CLI PHP,cron
也可以执行PHP脚本。只需确保以更合适的方式为明文报告文件生成cron-ran文件的输出,因为可以将cron设置为将文件的输出保存到文件系统某处的文件中。
00 * * * * /usr/local/bin/php /home/john/myscript.php
获取远程更新需要您注意防止任何恶意数据。您应该尝试将更新信息封装到压缩容器(gzip?)中并计算校验和。方法应该是:
如果您要设置远程服务器的系统(XML-RPC可能作为响应发送的内容),我会尝试使用足够的安全检查来实现可靠的方法。但要尽量防止过早优化和过度使用。
但是,还有其他包装器可用于与远程服务器通信。以cURL为例。