我使用GoDaddy託管我的網站,我現在使用PHP mail()
函數從我的網站發送表單郵件。 GoDaddy每天對郵件內容有1000個SMTP中繼限制,但他們發誓,我的PHP腳本不應該觸及它。PHP郵件()默認使用什麼SMTP服務器,並且有更好的選擇嗎?
由於
mail()
不採取SMTP信息,它只是自動使用GoDaddy的(或其他託管你可能會在)?如果我的網站預計每天發送超過1000封電子郵件(單獨的實例,而不是循環),我應該使用不同的方法,或者是否是正確的選擇?
我使用GoDaddy託管我的網站,我現在使用PHP mail()
函數從我的網站發送表單郵件。 GoDaddy每天對郵件內容有1000個SMTP中繼限制,但他們發誓,我的PHP腳本不應該觸及它。PHP郵件()默認使用什麼SMTP服務器,並且有更好的選擇嗎?
由於mail()
不採取SMTP信息,它只是自動使用GoDaddy的(或其他託管你可能會在)?
如果我的網站預計每天發送超過1000封電子郵件(單獨的實例,而不是循環),我應該使用不同的方法,或者是否是正確的選擇?
默認情況下,本地郵件服務器使用Php。但是你可以在你的php.ini配置文件中指定它。
如果您預計比派遣更多的電子郵件,你可能要考慮尋找一個不同的服務器從郵寄,或替代託管
我可以只指定任何服務器?例如...我可以通過Gmail的服務器發送,但保留我的域名在我的電子郵件?這可能看起來像一個愚蠢的quesiton,但在這方面im模糊 – johnnietheblack 2009-06-10 19:31:19
@johnnietheblack:如果您可以訪問php.ini文件(即PHP的設置),您可以將SMTP服務器設置爲任何你想要的。 (這是絕對不是這種情況下任何形式的共享主機) – Piskvor 2009-06-10 19:51:00
如果需要使用需要身份驗證的外部電子郵件服務器,你會無法使用PHP mail()函數。
如果你需要使用第三方電子郵件服務,我建議下探使用mail()
並與SwiftMailer庫取代。這是一個功能豐富的組件(支持認證,附件,加密等),我們在幾個地方使用它。它也是免費和開源的。
在* nix機器上,PHP mail()
函數不支持SMTP,而是使用服務器上的sendmail()或其他配置的郵件腳本。這個腳本可以通過SMTP發送,但這不是PHP中最簡單的方式(除非你已經有腳本)。要使用SMTP,我會推薦PHPMailer。我已經使用了幾年了,並且留下了深刻的印象。它支持SMTP以及許多其他協議,並且還具有其他有用的功能,例如爲HTML電子郵件添加僅文本主體並創建適當的電子郵件標題。您還可以擴展該類以設置默認值,例如SMTP服務器和電子郵件/名稱,這樣您不必在每次發送電子郵件時都設置這些默認值。它也做了很好的錯誤報告和調試。
我也推薦這個類發送1000個電子郵件。我最近在一天內做了> 5000,並沒有問題。
mail()確實使用php.ini中定義的設置。 Windows服務器需要一個實際的smtp服務器,而* nix服務器將使用服務器上安裝的任何mta(如果有的話)。
正如其他人所提到的,如果您確實想使用替代的smtp服務器,請使用SwiftMailer之類的替代庫。你也想確保smtp服務器速度很快。使用Gmail等SMTP服務器時,我看到速度變慢。
GoDaddy使用智能SMTP中繼,即使在GoDaddy託管的專用服務器上。限制取決於智能繼電器發送的郵件數量。
如果您有正當理由需要發送更多電子郵件,並且您可以確認您的網站不是垃圾郵件,並且所有電子郵件都是選擇加入的,但是如果您給予他們支持,則支持將會增加限制估算你需要發送多少封電子郵件。
我一直在使用開源項目phpmailer約七年 - 這是了不起的!您可以使用它連接到異地SMTP服務器。
由於這是一個古老的職位,我想如果我更新了答案將是有益的 -
這是簡單的有很多事情要做,現在比以前要:-)在PHP 4的PEAR郵件包通常已經安裝,這真的很簡單的教程顯示您需要添加到您的PHP文件的幾行代碼http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm
大多數託管公司列出您需要的SMTP設置。我使用Justhost的,他們列出他們在https://my.justhost.com/cgi/help/26(下發送郵件服務器)
不使用電子郵件()的PHP函數就會發送郵件只是垃圾郵件。而是使用SMTP php郵件程序功能。
爲什麼我們要使用SMTP,而不是PHP郵件():
SMTP登錄到實際帳戶上的郵件服務器,並通過SMTP發送郵件到其他郵件服務器。如果郵件服務器配置正確,您的郵件將從郵件服務器上的實際帳戶發送,並且不會被標記爲垃圾郵件。
郵件與郵件()函數一起發送與sendmail在大多數情況下發送。沒有進行身份驗證,如果您在額外的頭文件中使用「發件人:」,它幾乎總會被標記爲垃圾郵件。
這是因爲如果您在gmail中查看原始電子郵件文件,您將看到發送的標頭。您實際上是從[email protected]發送的,而不是像您告訴郵件功能那樣發送的是[email protected]。 如果使用SMTP並查看原始的電子郵件實際上是從發送[email protected]
您可以從下載SMTP類:
這是PHP在Linux或Windows上? – Kev 2009-06-10 19:32:51
它在Linux上共享主機:) – johnnietheblack 2009-06-10 19:52:38