2011-03-11 76 views
3

我有一個網站,通過cloudmailin接收傳入的電子郵件,將內容添加到數據庫,然後將確認電子郵件發回給發送電子郵件的人。目前我正在使用php mail()函數發送回覆,但似乎需要大約1.5分鐘才能到達用戶的收件箱。有沒有辦法讓這個更瞬間?我現在在FatCow上主持應用程序,我確信它與他們的郵件服務器有關,但我並不十分了解它是如何工作的,我想知道是否必須更改主機以實現更快的交付時間或者如果我可以在不切換的情況下做任何事情。快速發送電子郵件

回答

5

mail()是一個黑匣子。你告訴PHP嘗試發送郵件,但是主機已經配置了PHP來這麼做。

這是很可能它只是在你的情況下調用sendmail。這也是很有可能該機器上的郵件隊列不是世界上最快的。共享主機經常超載。

你應該做的第一件事就是詢問你的主機有關郵件延遲。也許有些事情是錯的,他們可以解決它。或者他們可能只是告訴你,一分半鐘不是等待很長時間。

還有很多的其他選項,主要是爲您提供SMTP服務的公司的形式。我不能推薦一個,但我可以建議你跳到你最喜歡的搜索引擎並尋找「smtp服務」。我最近開始使用Amazon Simple Email Service。這應該是快速和良好的維護,而且它確實是便宜。

所有這些選項都可能需要在您的一端進行一些配置更改。例如,您需要設置自定義DNS記錄(對於DKIMSPF)以確保來自第三方提供商的郵件不會自動標記爲垃圾郵件。

在PHP中使用SMTP非常簡單。有很多郵件生成選項。我個人最喜歡的是SwiftMailer。它甚至有一個transport option for Amazon SES

當然,最後一個選項是抓住你自己的虛擬專用服務器或專用服務器,它可以讓你根據需要配置外發郵件,代價是需要知道如何維護該服務器。


編輯:Obligatory link to relevant Coding Horror post

+0

我最終使用了sendgrid,它的工作速度比普通的mail()命令快得多。我也使用phpmailer,這使得它很容易設置smtp配置。 Amazon SES和swiftmailer也很好 – dvanderb 2011-04-20 19:22:48