交错电子邮件发送
回答
如果发送到所有订阅的网站,你可以做到以下几点:
- 用户表中添加列(如果它不存在 ),东西 像“email_sent “并默认为1 (代表是)
- 当你执行你的邮件发送 触发,更新所有用户记录 设定‘email_sent’标志0 (因为没有)。
- 建立一个执行 PHP脚本cron作业(甚至击中使用指定的页面您的Web 服务器 执行脚本),然后 选择具有 “email_sent”设置为0,第N个用户,发送他们 电子邮件,并将每个成功的'email_sent' 列更新为1。
如果您要处理多个邮件,您需要通过另一个维护用户的表加入:mailout关系和'email_sent'状态。
一个明智的解决方案。我可能会在中期添加这些更改以改进网站。 – 2011-05-28 04:07:42
最简单的方法是只需几秒钟入睡后的电子邮件每x号码发送:
$count = 0
while (foo) {
send_email();
if ($count++ == 100) {
sleep(10);//sleep for 10 seconds
$count = 0;
}
}
虽然这不会避免PHP超时。它可能通过浪费时间睡觉而不是花费邮寄来鼓励它。 – 2011-05-27 15:42:58
@Marc:不完全正确,花在睡眠上的时间不会影响脚本的执行时间。当然,脚本运行需要更长的时间,我同意确实有更高效的方法来完成目标,但OP要求提供一个简单而直接的解决方案。 – 2011-05-27 15:52:58
我可能会试试这个。我想要一个简单而直接的解决方案的原因是尽快让一些东西运行。之后我可以看看改进。我正在探索的另一条路线是使用Ajax调用一个页面,并通过50封左右的电子邮件发送电子邮件。 – 2011-05-28 04:05:15
您还可以尝试使用sleep命令或手动交错cronjobs但一个更好的选择可能会寻找到一个既定的库处理的细节为您提供:PEAR Mail_Queue
的Mail_Queue类把邮件在 临时容器,等待被送入 到MTA(邮件传输代理),和 稍后发送它们(例如,某种 每隔几分钟的邮件数量)通过 crontab或以其他方式。
也有很多公司会以一个价格为您处理所有这些,如果这是您的选择。
去与第三方不是一种选择。梨看起来很有趣。我希望它支持PHP邮件功能,因为没有SMTP(由主机禁用)。 – 2011-05-28 04:12:17
- 1. 发送表单提交电子邮件
- 2. 电子邮件送交
- 3. PHP发送电子邮件多次发送电子邮件
- 4. asp.net的MVC发送电子邮件错误:无法发送电子邮件
- 5. 发送电子邮件时出错
- 6. Android - 电子邮件发送错误
- 7. PHP发送电子邮件GMAIL错误
- 8. PHP发送电子邮件错误
- 9. 错误尝试发送电子邮件
- 10. 发送电子邮件时出错
- 11. Drupal 7 - 发送错误电子邮件
- 12. Laravel 4.2发送电子邮件错误
- 13. 发送电子邮件的SMTP错误?
- 14. PowerShell的电子邮件错误发送
- 15. CakePHP 2.0发送电子邮件错误
- 16. .NET发送电子邮件的错误
- 17. 发送电子邮件时出错CakePHP
- 18. 发送电子邮件时出错
- 19. Django电子邮件发送错误
- 20. 电子邮件不发送
- 21. django发送电子邮件
- 22. SpringMVC发送电子邮件
- 23. aspx:发送电子邮件
- 24. 发送电子邮件从
- 25. 发送电子邮件
- 26. 发送电子邮件nodemailer
- 27. PHP发送电子邮件
- 28. 发送电子邮件
- 29. 发送电子邮件
- 30. SMTP:发送电子邮件
我只想通过第三方服务。 – 2011-05-27 15:40:43
轻松的话题,但如果这是你反复计划的事情,你可能会考虑发送批量电子邮件的商业解决方案。如果您不小心,可能会被标记为垃圾邮件发送者。 – Greg 2011-05-27 15:42:37