2010-02-28 144 views
1

當我在本地發送電子郵件時,我沒有任何發送電子郵件的問題。發送電子郵件的問題

但是,當我上傳到我的現場網站時,我無法發送電子郵件。

我使用PHP郵件功能。

誰能告訴我我需要找什麼?

在此先感謝。

+0

你目前使用哪些代碼? – zmbush 2010-02-28 22:14:37

+0

您的主機可能禁用了PHP郵件,可能是因爲它沒有使用SMTP身份驗證來發送郵件。您可以嘗試使用另一種發送電子郵件的方法,例如phpmailer類(請參閱http://www.askapache.com/php/phpfreaks-eric-rosebrocks-phpmailer-tutorial.html) – Tomba 2010-02-28 22:24:51

+0

屬於serverfault? – MarkR 2010-02-28 22:27:43

回答

0

如果您有不與任何其他應用共享您沒有親自開發並擁有控制權的專用服務器,然後執行以下操作:

  • 確保您的PHP應用程序被髮送到一個地方MTA正在接受消息
  • 診斷您的MTA未傳遞消息的原因。
  • 採取措施讓您的服務器的IP從您當前所有的無數黑名單中除名。

另一方面,如果您的託管服務不是完全專用於您開發的應用程序並且完全控制(即不是垃圾郵件發送者),那麼您幾乎可以忘記它。

幾乎每個單獨的共享服務器提供商都有充滿惡意的腳本,它們故意發送垃圾郵件或被垃圾郵件發送者用於發送垃圾郵件。剩下的只是發送非垃圾郵件的郵件,使其看起來像垃圾郵件。結果,他們都不斷被列入黑名單。從這些黑名單中刪除是毫無意義的,因爲一旦您分享的所有垃圾郵件發送者都會重新列出垃圾郵件,您的服務器將立即重新列出。

結論:

  • 如果你想發送的任何郵件,在所有的,並希望把它交付,使用完全專用的服務器。

如果您有多個應用程序,則可能需要考慮使用專用的出站IP來傳遞來自該應用程序的消息。這減少了其中一個被列入黑名單的影響。 IPv4地址**並非真的不可用,這是不合理的。

如果您沒有自己的IP地址空間,則需要從您的colo供應商處請求它。如果可能的話,詢問他們有哪些可用地址,並在他們分配給您之前檢查他們是否爲黑名單。

**大多數電子郵件服務提供商不IPv6的

接受郵件
1

這很可能是你有你的郵件配置設置不正確。如上所述,服務器可能期望進行身份驗證,或者可能未指定SMTP主機。

有一個非常非常好的免費PHP組件,名爲PHP Mailer(可從http://phpmailer.worxware.com/獲得),它很容易設置,具有非常強大的郵件功能 - HTML郵件,內聯附件等,有很好的文檔記錄,傳遞郵件的方法,包括直接訪問SENDMAIL或使用自己的SMTP服務器代碼。

PHPMailer站在原生的PHP郵件功能上頭和肩膀,所以它非常值得一看。