1

大家好,我有几个问题想问。我使用 hostgators 业务计划托管在共享服务器上,当我与他们谈论限制时,他们告诉我发送电子邮件的限制是每小时 500 封(我认为但不太确定可能是 1000 封,但事实并非如此问题。)我认为当我的工作上线时我会遇到问题,所以我正在考虑制作某种脚本(PHP)来监控外发电子邮件,允许发送 350 封电子邮件并将其余邮件搁置直到一个小时过去,然后再发送 350 个,依此类推。我正计划用 XML RPC 为引擎构建一个更新系统并与远程服务器通信,如果有任何更新可以开始读取它们并将它们应用于系统由 CRON 触发。这就是我现在想给出的信息:

1. 邮件监控:
1.1如何获取邮件发送量?
1.2我应该如何为它设置 CRON?(如果我设置 CRON 的时间少于 5 分钟,我认为它会被删除。)或者我应该使用替代方案,它应该是什么?
1.3有人可以给我一个示例脚本吗?
2. XML RPC updater:
2.1最好的方法是什么?
2.2除了“检查”->“响应[true|false]”->“读取更新的内容”->“写入更新的内容”之外的方法是什么?
2.3制作这样的系统是个好主意吗?制作它的最安全方法是什么?

4

1 回答 1

1

您的数据库中始终可以有一个表格,用于设置特定日期已发送的电子邮件数量。您可以UPDATE email_count SET emails = emails + 1 WHERE date = $current_date在 PHP 查询中使用($current_datePHP 必须从时间戳中获取的变量),并且在发送电子邮件之前,使用SELECT查询检查该值。

当然,你需要决定你想要什么。如果达到限制,则禁止发送电子邮件(我将以用户注册确认电子邮件为例),或者只是限制(推迟)它们。如果您决定禁止,您的工作很简单:如果金额已经达到限制,您只需禁用注册表单。

如果您决定节流,您将遇到一个非常复杂的问题,需要非常复杂的解决方案。您将需要生成电子邮件(作为它们已经生成的文本格式,或者只是可变内容)并将它们与To:值一起存储在数据库中。您还需要准确性和设置cron,以便在接下来的一小时内,您首先解析前一小时的“遗留”电子邮件。

但是,如果前一天不仅生成了如此多的电子邮件,而且之后的一小时都被“堵塞”了怎么办?您需要衡量和模拟您网站的使用情况并获得最佳示例。可能有一些方程式可以帮助您建立节流模式。限制的一半是每小时为可能的遗留电子邮件保留的?考虑到一些人口统计方法?有多种选择。

请注意,如果服务器上安装了 CLI PHP,cron也可以执行 PHP 脚本。只需确保以更适合纯文本报告文件的方式生成 cron-ran 文件的输出,因为可以设置 cron 以将文件的输出保存到文件系统上的某个文件中。

00 * * * * /usr/local/bin/php /home/john/myscript.php

获取远程更新需要您注意防止任何恶意数据。您应该尝试将更新信息封装到压缩容器(gzip?)中并计算校验和。方法应该是:

  • 查询远程服务器
  • 检查远程服务器上的差异/更新
  • 获取响应(如果有差异)
  • 通过一些消毒和散列检查本地差异
  • 合并获取的更新

如果您也要设置远程服务器的系统(XML-RPC 可能会发送作为响应的内容),我会尝试实施具有足够安全检查的可靠方法。但要尽量防止过早的优化和过度杀伤。

但是,您还可以使用其他包装器与远程服务器进行通信。以cURL为例。

于 2012-08-07T12:22:51.440 回答