2016-11-24 122 views
1

我使用Laravel,我想使用PHP郵件功能。我曾經嘗試這樣做:發送郵件使用PHP郵件功能,電子郵件不發送,並沒有產生錯誤

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'From: Your name <[email protected]>' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
mail('[email protected]', 'My Subject', 'test', $headers); 

但至少傳送我不接受她檢查垃圾郵件文件夾,它不存在,並執行該代碼時,我不會收到任何錯誤信息沒有電子郵件獲取的。

php郵件功能用來發送郵件什麼?也許我錯過配置的東西?

而且我不localy運行此,我把它上傳到我的VPS它運行的Ubuntu 16.04.1 LTS

+0

您的Ubuntu是否配置了郵件服務器? – Cagy79

+0

嘗試使用函數var_dump檢查返回值:' 如果郵件已成功接受傳遞,則返回TRUE,否則返回FALSE。 重要的是要注意,僅僅因爲郵件被接受交付,它並不意味着郵件實際上會到達預期的目的地。「我不知道,我沒有安裝任何我自己的東西。」 – Cagy79

+0

。我想知道哪些WordPress自動默認使用的PHP郵件功能,是否需要郵件服務器才能使用它?它如何在共享主機上工作? –

回答

1

如果我是你的話,我會嘗試先檢查錯誤,然後調試,如:

確保錯誤報告已啓用並設定報告所有錯誤

error_reporting(-1); 
ini_set('display_errors', 'On'); 
set_error_handler("var_dump"); 



$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'From: Your name <[email protected]>' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";  

$status = mail('[email protected]', 'My Subject', 'test', $headers); 

if($status) 
{ 
    echo '<p>Your mail has been sent!</p>'; 
} else { 
echo '<p>Something went wrong, Please try again!</p>'; 
} 
0

可能這是因爲.ENV文件選項將覆蓋你的config/mail.php選項。從.env中刪除所有重複選項,並在.env處檢查郵件驅動程序'MAIL_DRIVER'。它應該是MAIL_DRIVER = smtp

Answer reference