好的,这是我的问题:
我有一个网站上的成员列表,并且我的网站的一位管理员(不是非常精通网络或技术)会定期向成员列表发送时事通讯。我目前的成员名单有 800 多人。
因此,我编写了一个电子邮件脚本,将电子邮件发送到完整的成员列表,成员列在密件抄送标题中。
但是,我发现我的主机服务器每小时有 300 封电子邮件的限制,即使成员列在密件抄送字段中,我显然也超过了这个限制。(我以前不知道密件抄送的行为是为列表中的每个名称发送单独的电子邮件......)
经过一番思考,我得出的结论是,我唯一的解决方案是让我的脚本只向前 300 封电子邮件发送电子邮件,等待一个小时,然后向接下来的 300 封电子邮件发送第二封电子邮件,再等一个小时,依此类推,直到我将电子邮件发送到整个成员列表。
在互联网上环顾四周,我看到人们提出了一些其他解决方案,用于延迟 PHP 中的电子邮件。Sleep() 显然不是一个选项,因为我不能只让脚本打开并运行 3 或 4 个小时。我看到有人建议 cron 作业,但我不确定每次发送电子邮件时创建三个新的 cron 作业,使用一次,然后删除它们是否可行。我见过的最终(我认为是最聪明的)解决方案是在我的数据库中有一个表来临时存储要延迟和稍后发送的电子邮件,然后创建一个 cron 作业,每小时检查一次这个 sql 表左右,将行的时间戳与当前时间戳进行比较,如果一个小时过去了,则发送电子邮件。
所以我问大家你会推荐哪种方法。有没有我已经完全看过的更简单的解决方案(除了获得不同的托管计划。哈!),或者有没有比数据库/cron作业方法更清洁的方法?
tl;博士:我有超过 800 封电子邮件要在一小时内在服务器上发送,这将我限制为 300/小时。使用 PHP,找到一种解决此问题的方法,即发送电子邮件的人只需单击“发送”。