2009-11-02 128 views
0

我在我的項目中使用php sendmail()函數。當我發送3個或更多郵件時,處理速度太慢。問題是什麼?如果我使用PHPMailer,這個問題會解決嗎?Php郵件功能

回答

1

有幾件事情可能會導致這種情況變得緩慢。

您可能正在等待每封電子郵件在sendmail()返回之前完全發送。這將意味着打開一個SMTP套接字,與另一個郵件服務器通話,發送電子郵件並再次關閉套接字。

我們有一個系統可以批量發送不少郵件,我們使用PHPMailer。我們打開套接字一次,發送大量消息,然後再關閉它,並且我們獲得了良好的性能(它可以在一次運行中發送數百封電子郵件)。

如果您的郵件與所有收件人相同,我建議將它們全部發送到一封電子郵件中,併爲每個人發送密碼,因爲這會給您的腳本帶來很大的壓力。

另一件要檢查的是本地病毒掃描程序。我們曾經在外發的電子郵件掃描器方面遇到了問題,使整個事情停滯不前。值得期待。

+0

謝謝rikh。我試圖通過BCC發送郵件,但結果相同。 – sathish 2009-11-02 10:31:44

+0

BCCing並不總是需要的,因爲所有電子郵件地址仍然會出現在每封郵件中。所以,如果有人想要將所有客戶都發送給他人,他會很輕鬆地做到這一點。 – 2009-11-02 10:58:47

+0

嗯,我不這麼認爲。如果你是每個人的CC,那麼他們都能看到這個列表,但是BCC(盲文副本)不應該包含任何其他人在BCC列表中的信息。 – 2009-11-02 11:54:39

1

似乎,你的mail()函數有一些限制,適用於sendmail或一些問題。嘗試通過SMTP發送郵件,例如使用:http://swiftmailer.org/並查看它是否能解決您的問題。

+0

謝謝。我需要建立一個時事通訊管理,所以我需要更快的腳本,我會嘗試swiftmailer。 – sathish 2009-11-02 10:29:07

+0

好的;)在你解決你的問題後,不要忘記其中的一個回覆。 – 2009-11-02 10:59:34

+0

我在我的網站中使用了swiftmailer,我能夠快速發送500多個。它解決了我的問題,也有很多選擇。 謝謝大家。 – sathish 2009-11-04 08:58:53