2016-11-24 129 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