有什么方法可以让我从一个 php 脚本请求中发送大约 3000 多封电子邮件,而不会超载专用 IP……每小时最多 500 封?
如果你不明白我..这里是详细的:)
我只能通过我的专用 IP 每小时通过 PHP 中的 mail() 函数发送 500 封电子邮件,有什么方法可以发送例如从电子邮件地址中提取的 3000 行电子邮件,但将 mail() 函数错开每小时500...
已经谢谢了!
创建 2 个表,一个用于电子邮件消息,一个用于收件人列表。然后创建一个由 cron 运行的脚本,检查消息表中是否有新消息,如果有,则将一批电子邮件发送给下一组收件人。邮件发送后标记每个收件人。
然后,您为您的客户端创建一个 Web 界面来创建一条消息,并在用户将消息标记为准备就绪后将收件人附加到消息中,您的 cron 作业将接收并处理它。
如果没有任何消息要发送,您的 cron 作业不会执行任何操作。
我会在数据库中放置一个字段,以显示最后一封电子邮件何时发送给每个用户以及它是什么电子邮件。我还会有另一个数据库表来显示您发送的每封电子邮件,以及它是否已发送给所有用户。
User Table:
Id, UserName, Email, etc, DateTimeOfLastEmail, LastEmailId
Email Table:
Id, EmailSubject, EmailContent, DateTimeSent, SentToAll(True/False), DateTimeOfFinish
感谢所有的答案!我发现的最好方法实际上是在我测试 400 封邮件时使用 sleep() 在调用之间简单地 sleep(),这需要 17 秒 :)
用户不太可能发送超过 450 的限制......但是如果他们这样做,我在 while() 结束之前有一个 if 语句检查是否有超过 450 行,如果是这样,它将在每个之间休眠......这个无需繁琐的数据库即可工作:)
谢谢!
您可以在通话之间休眠,或者,如果它们已经在数据库中,则在其中放置一个字段,说明它们的发送时间。然后您选择尚未发送的那些,并从那里开始。
做了一些数学之后,您可以每 8.3 秒(498/小时)发送一封电子邮件,但这并不能解决问题。我认为另一种方法是使用数据库,查询 500 并让 CRON 作业每小时运行一次脚本。
因此,在 DB 表中,您可以让脚本在发送电子邮件后更新字段,以便下一个 cron 作业将查询并获取接下来需要发送的 500 封电子邮件。