撇開垃圾營銷的鄙視,我需要發送大約15,000封電子郵件給客戶。我的同事試圖通過PHP郵件循環發送它們,但顯然它很快就被卡住了。是否有傳統的(即通過PHP腳本)來快速完成這項工作?如果沒有,你怎麼建議我這樣做(也許通過exec
)沒有太多的開銷?PHP:批量發送大量電子郵件
謝謝!
撇開垃圾營銷的鄙視,我需要發送大約15,000封電子郵件給客戶。我的同事試圖通過PHP郵件循環發送它們,但顯然它很快就被卡住了。是否有傳統的(即通過PHP腳本)來快速完成這項工作?如果沒有,你怎麼建議我這樣做(也許通過exec
)沒有太多的開銷?PHP:批量發送大量電子郵件
謝謝!
我已經使用PEAR的Mail_Queue一次排隊了200,000多封郵件。即使使用自定義內容,填充數據庫也非常簡單快捷,然後一個相當簡單的腳本可以發送大約250次 - 如果平均負載不太高。然後它循環併發送下一批。
你不會發送任何比通常可能的更快的速度,但它會做到沒有任何問題。
tutorial爲您提供了幾乎所有您需要的東西 - 只需循環「send_messages.php」腳本(從命令行更好)直到數據庫隊列爲空。
謝謝,我一定會試一試。 – Gal 2011-03-03 11:27:31
您是通過CGI運行它還是作爲命令行上的腳本運行?最好在命令行上將它作爲腳本運行。
如果您認爲它卡住了,請嘗試運行set_time_limit(0);
以避免PHP退出執行時間過長。
我正在尋找任一解決方案。設置時間限制仍然需要很長時間才能發送。我應該在命令行上使用什麼腳本? – Gal 2011-03-03 10:12:45
你不需要改變任何東西。 PHP腳本可以在命令行上運行。 – 2011-03-03 10:28:32
無論您如何實施即時交付:這將是一個漫長的過程,總是會受到干擾,您不能重新啓動交付並向兩千個客戶發送兩次相同的消息。
我相信一個可靠的系統必須使用隊列。主腳本只是將收件人添加到隊列中,然後您有一個輔助進程從隊列中選取項目,讓它們發送並最終將其標記爲已發送。這個輔助進程可以手動啓動(可能來自命令行)或通過cron選項卡啓動。
我從來沒有用過,但我有這個在我的書籤:http://ledscripts.com/free/php/phpledmailer
你可以看看使用像Gearman一些建議here創建隊列系統。另一種選擇是看看付費服務,如Amazon's Simple Email Service (SES)
Swift梅勒? http://swiftmailer.org/ – lam3r4370 2011-03-03 10:33:59