2010-02-12 336 views
0

在我的應用程序中,我們有一個冗長的腳本,將多個記錄寫入數據庫,將多個文件從服務器上的一個位置複製到另一個位置,然後發送多個電子郵件。PHP發送電子郵件

我們注意到間歇性的過程會超時。經過一些調試,我們注意到超時通常發生在發送郵件時,我們使用PHP郵件()及其託管的Windows服務器。主持人說在這個腳本中CPU的使用似乎會激增,這是否合理?我不認爲郵件密集?

我在想,排隊郵件可能會更好,我們不能讓Pear運行,所以不能使用mail_queue,但我想我們只是將電子郵件數據寫入數據庫,然後設置一個cron /計劃任務來運行腳本每晚處理表格的第一條記錄,在它發送電子郵件後刪除記錄,然後重新運行自己,從而避免超時?也許這是一個繁瑣的解決方案..任何反饋將不勝感激。

+0

在Linux上,你有一個腳本超時參數,你可以改變,我不知道關於Windows。如果你不能,你可以讓腳本發送一定數量的郵件(例如x,10),這將會在timeout linit之下,然後自己調用它來發送下一封郵件no? – Julien 2010-02-12 03:12:52

+0

你可以改變腳本的超時時間,但隊列是一個更靈活的解決方案。不要只發送一個,drupal每次運行cron時都會發送一些消息,數量將取決於服務器過載,連接,郵件的大小等。在發送X電子郵件之前測試腳本不會死。 – useless 2010-02-12 03:21:51

回答

1

我建議使用SwiftMailer發送您的所有電子郵件。您可以使用它發送批次。

http://www.swiftmailer.org

如果你有電子郵件的地段派,一個排隊系統是最好的。