我的脚本和hostgators托管服务,以及一些其他信息

时间:2012-08-07 12:06:36

标签: php mysql cron xml-rpc

大家好我有几个问我想问。我在共享服务器上使用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 制作这样的系统是一个好主意,最安全的方法是什么?

1 个答案:

答案 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为例。