2013-11-28 86 views
0

嗨,首先我測試郵件功能,允許顯示錯誤,並用它來測試。郵件()函數單獨工作電子郵件沒有到達

<?php 

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 


$email = "[email protected]"; 
$subject = "Test Message"; 
$msg = "This is a test message"; 

$eLog="/tmp/mailError.log"; 

//Get the size of the error log 
//ensure it exists, create it if it doesn't 
$fh= fopen($eLog, "a+"); 
fclose($fh); 
$originalsize = filesize($eLog); 

mail($email,$subject,$msg); 

/* 
* NOTE: PHP caches file status so we need to clear 
* that cache so we can get the current file size 
*/ 

clearstatcache(); 
$finalsize = filesize($eLog); 

//Check if the error log was just updated 
if ($originalsize != $finalsize) { 
print "Problem sending mail. (size was $originalsize, now $finalsize) See $eLog 
"; 
} else { 
print "Mail sent to $email"; 
} 
?> 

這是告訴我,這是工作和發送電子郵件..

的問題是,應該與此代碼來發送郵件,是不是抵達[email protected]帳戶(至極我改變了一個真正的電子郵件)

爲什麼?也在php.ini似乎很好,但也許我不是在尋找正確的參數。

+1

1)檢查郵件的返回值()2)檢查服務器的郵件日誌,看看有什麼在電子郵件PHP的手中時,情況發生。 3)檢查您的接收帳戶的垃圾郵件文件夾。 –

+0

也做一些故障排除。註釋掉mail()行並添加一個基本的,看看是否有效。郵件('[email protected]','測試','一些內容');那麼你至少會知道它是否是你的代碼中的東西。 – Steve

+0

確定1)如何? 。 2)我檢查/tmp/mailError.log沒有錯誤那裏,3)我沒有電子郵件那裏:( –

回答

1

我不關於downvote護理,好吧,我終於understasnd怎麼回事這應該有助於其他「不是上帝程序員」凡人一個,像我..

如果你是一個Linux服務器上,它似乎郵件()函數被髮送到sendmail函數,爲了啓用這個功能,你必須安裝postfix。

這很容易..並解決我所有的問題。

http://whiletruecode.com/post/setting-up-phps-mail-function-on-a-linode-server

+1

個人而言,我認爲這對許多人來說可能是有用的。我失去了對曾經看過多少次關於同一問題的看法類似的問題 –

+0

是的,這個問題將不得不是一些首先要檢查的事情是左邊的最後......這就是爲什麼我也認爲這是有用的..在Linode例如,你總是不得不安裝postfix或郵件()不會工作。 –

+0

這是很好的信息要知道。我至今一直不知道,謝謝。乾杯 –

相關問題