交錯電子郵件發送
回答
如果發送到所有訂閱的網站,你可以做到以下幾點:
- 用戶表中添加列(如果它不存在 ),東西 像「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. 發送交易電子郵件magento
- 2. 交易電子郵件不發送
- 3. 發送表單提交電子郵件
- 4. 電子郵件送交
- 5. 發送電子郵件操作不發送電子郵件
- 6. PHP發送電子郵件多次發送電子郵件
- 7. asp.net的MVC發送電子郵件錯誤:無法發送電子郵件
- 8. 確定電子郵件發件人併發送電子郵件
- 9. System.FormatException發送電子郵件時出錯
- 10. .NET發送電子郵件的錯誤
- 11. Android - 電子郵件發送錯誤
- 12. 發送電子郵件的SMTP錯誤?
- 13. 發送電子郵件時出錯
- 14. 發送電子郵件時出錯
- 15. 發送電子郵件時出錯CakePHP
- 16. CakePHP 2.0發送電子郵件錯誤
- 17. 發送電子郵件時出錯
- 18. PHP發送電子郵件GMAIL錯誤
- 19. 發送電子郵件時出錯
- 20. 錯誤發送電子郵件
- 21. Drupal 7 - 發送錯誤電子郵件
- 22. 笨:發送電子郵件時出錯
- 23. 發送電子郵件時出錯
- 24. PHP發送電子郵件錯誤
- 25. Laravel 4.2發送電子郵件錯誤
- 26. 錯誤發送電子郵件vb.net
- 27. 錯誤嘗試發送電子郵件
- 28. PHP的電子郵件發送錯誤
- 29. 笨電子郵件發送錯誤
- 30. 發送電子郵件時出錯
我只想通過第三方服務。 – 2011-05-27 15:40:43
輕鬆的話題,但如果這是你反覆計劃的事情,你可能會考慮發送批量電子郵件的商業解決方案。如果您不小心,可能會被標記爲垃圾郵件發送者。 – Greg 2011-05-27 15:42:37