2013-01-16 51 views
2

爲什麼不是以下工作?無法從本地計算機發送電子郵件到谷歌

<?php 

    mail('[email protected]', 'some text here', 'some text here'); 

?> 

的access.log示出:

127.0.0.1 - - [16/Jan/2013:08:46:52 +0000] "GET /test_mail.php HTTP/1.1" 200 294 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/536.11 (KHTML, like Gecko) Ubuntu/12.04 Chromium/20.0.1132.47 Chrome/20.0.1132.47 Safari/536.11"

error.log中示出了:

nothing

我還試圖從終端執行以下操作:

echo 'body' | sendmail [email protected] 

沒有。

和mail.log顯示:

Jan 16 08:57:24 ubuntu postfix/smtp[4081]: connect to alt1.gmail-smtp-in.l.google.com[2a00:1450:4001:c02::1a]:25: Network is unreachable 

我沒有得到我的收件箱或垃圾郵件箱的郵件。

+0

最有趣的位是你的mail.log所說的,如果mail()方法返回true或false。 – Oldskool

+1

-1,沒有研究工作。在這個問題上有兩億五千萬個關於SO的問題,其中大部分涉及服務器配置錯誤或垃圾郵件過濾器。切換到使用SMTP的第三方庫,以便您可以驗證郵件是否已實際發送,然後從此處開始。 Swiftmailer,PHPMailer,PEAR的Mail類等等* *除PHP'mail()以外的任何東西*。 – Charles

+1

我已經爲我的問題添加了一些額外的信息。 – oshirowanen

回答

0

得到它的工作使用下列內容:

sudo apt-get install sendmail 

編輯php.ini取消註釋的sendmail - 該礦位於

/etc/php5/apache2/ 

sendmail_path = /usr/sbin/sendmail -t -i 

保存更改並重新啓動阿帕奇。

6

postfix/smtp[4081]: connect to alt1.gmail-smtp-in.l.google.com[2a00:1450:4001:c02::1a]:25: Network is unreachable

它看起來像你使用後綴有IPv6 support enabled,但你不是,在大是連接到互聯網IPv6網絡上,或有防火牆規則阻止連接。

最簡單的故障排除方法將編輯main.cf並將inet_protocols更改爲ipv4而不是當前設置的任何值。進行此更改後,請確保完全重新啓動Postfix服務。鏈接的文檔頁面將提供更多關於啓用IPv6支持的含義的信息。

如果在下降到IPv4後仍然無法連接,請在系統和Internet之間查找防火牆規則。

我還是想積極鼓勵你使用PHP的mail()功能。 mail()確實不是擔保交貨。所有它保證它試圖將郵件交給某事在幕後。當事情出錯時,它不會給你提供線索。請改用第三方郵件庫,例如SwiftmailerPHPMailer與已知的SMTP服務器結合使用。這些庫在發送時出現問題時更加明顯,並且您可以獲得非常有用的啓動功能。

+0

而*爲什麼*是網絡無法訪問?如果ifconfig報告了inet6-Address FE80:...,那麼下面是解釋:http://serverfault.com/questions/424922/how-to-get-ipv6-running-properly – BurninLeo

相關問題