2
我知道我們可以在不同主機上使用smtp服務器發送來自php的電子郵件,或者是否安裝了本地smtp服務器。我想知道的是可以發送電子郵件沒有任何本地或遠程smtp服務器?我聽說過sendmail程序,但它可以在沒有安裝任何郵件服務器的情況下工作嗎?可以在沒有郵件服務器安裝在服務器上的PHP發送電子郵件?
我知道我們可以在不同主機上使用smtp服務器發送來自php的電子郵件,或者是否安裝了本地smtp服務器。我想知道的是可以發送電子郵件沒有任何本地或遠程smtp服務器?我聽說過sendmail程序,但它可以在沒有安裝任何郵件服務器的情況下工作嗎?可以在沒有郵件服務器安裝在服務器上的PHP發送電子郵件?
在某些時候,您必須與SMTP服務器通話。通過本地主機上的SMTP服務器發送是最乾淨的選項,並且最有可能成功通過垃圾郵件過濾器。
郵件服務器的功能相當複雜。讓我們把你的平均的電子郵件,因爲它從你的電子郵件客戶端的電子郵件服務器到達與出站的主機作爲目標:
隊列中的下一個電子郵件服務器會重複上述操作,直到最終服務器收到電子郵件並位於收件人的郵箱中。
在PHP中這樣做是可能的,但我不推薦它。 MX記錄查找可能會非常棘手,因爲人們會做各種不符合郵件服務器容忍的事情。另外,您的腳本可能會在試圖直接連接到目標SMTP服務器時超時。某些服務器也被配置爲「灰名單」電子郵件,這意味着電子郵件最初將被拒絕,但會在稍後被接受(例如30分鐘不常見)。平均PHP腳本將無法處理該情況。
所以沒有smtp服務器的PHP本身不能發送電子郵件的權利? – Yalamber
嗯,在某些時候,某個地方必須與SMTP服務器通話。這就是電子郵件的工作原理。 PHP(以及任何語言,如果它遵循SMTP協議)可以直接與SMTP服務器通話。由於發送電子郵件實際上是一個複雜的話題,所以它變得非常麻煩。 (我們有12個當前的isis RFC,有大量過時的RFC,每個平均大約有50個頁面)。這就是爲什麼人們將電子郵件從PHP傳遞到像本地SMTP服務器那樣可靠的東西來處理消息。 'sendmail'直接將電子郵件發送到本地隊列進行發送。 – CubicleSoft
對於'sendmail',它將電子郵件放入本地盒子上SMTP服務器的隊列中發送出去。它往往比連接和交談本地SMTP服務器的速度更快。因爲它是一個* NIX OS程序,所以你不能保證你的PHP代碼能夠在任何地方運行。我傾向於傾向於便攜式代碼,因此我不會將自己綁定到單個系統。 – CubicleSoft