PHP批量电子邮件 - 专用IP Max?

时间:2009-08-25 19:41:24

标签: php email bulk

有什么方法可以从一个php脚本请求中发送大约3000多封电子邮件而不会超载专用IP ...最大值是每小时500个?

如果你不接受我..这里详细说明:)

我只能通过我的专用IP每小时通过mail()函数以PHP发送500封电子邮件,有什么方法我可以发送例如从电子邮件地址中提取的3000行电子邮件但错开邮件()功能每小时500个......

谢谢!

5 个答案:

答案 0 :(得分:2)

创建2个表,一个用于电子邮件,另一个用于收件人列表。 然后创建一个由cron运行的脚本,用于检查消息表中是否有新消息,如果是,则向下一组收件人发送一批电子邮件。邮件发送后标记每个收件人。

然后,为客户创建一个Web界面,以便在用户将邮件标记为准备好将您的cron作业选中并处理它时,创建邮件并将收件人附加到邮件中。

如果没有要发送的消息,则您的cron作业不会执行任何操作。

答案 1 :(得分:1)

您可以在通话之间休眠,或者,如果它们已经在数据库中,则在其中放置一个字段,说明它们何时被发送。然后选择尚未发送的那些,并从那里开始。

答案 2 :(得分:1)

我会在数据库中放置一个字段,以显示最后一封电子邮件发送给每个用户的时间以及它是什么电子邮件。我还有另一个数据库表来显示您发送的每封电子邮件,以及它是否已发送给所有用户。

User Table:
Id, UserName, Email, etc, DateTimeOfLastEmail, LastEmailId

Email Table:
Id, EmailSubject, EmailContent, DateTimeSent, SentToAll(True/False), DateTimeOfFinish

答案 3 :(得分:1)

感谢所有答案! 我发现的最好的方法实际上就是在使用sleep()调用之间简单地睡觉(),因为我测试了400封邮件,这需要17秒:)

用户不太可能发送超过450的限制...但是如果他们在while()结束之前检查是否有超过450行,那么它会在每个之间休眠。 ..这没有繁琐的数据库:)

谢谢!

答案 4 :(得分:0)

在做了一些数学计算之后你可以每隔8.3秒(498 /小时)发送一封电子邮件,但它无法解决问题。我认为另一种方法是使用DB,查询500并让CRON作业每小时运行一次脚本。

因此,在数据库表中,您可以让脚本在发送电子邮件后更新字段,以便下一个cron作业将查询并获取需要发送的下500封电子邮件。