【问题标题】:sending email using php mail function, email does not get sent and no errors produced使用php邮件功能发送电子邮件,电子邮件不会被发送,也不会产生错误
【发布时间】:2016-11-24 13:08:52
【问题描述】:

我正在使用 Laravel,我想使用 php 邮件功能。我试过这个:

$headers =  'MIME-Version: 1.0' . "\r\n";
$headers .= 'From: Your name <info@address.com>' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
mail('myaddress@gmail.com', 'My Subject', 'test', $headers);

但至少没有发送电子邮件我没有收到它检查的垃圾邮件文件夹并且它不存在并且执行此代码时我没有收到任何错误消息。

php邮件功能是用什么来发送邮件的?也许我错过了配置一些东西?

我也没有在本地运行,我已将它上传到运行 Ubuntu 16.04.1 LTS 的 VPS

【问题讨论】:

  • 您的 Ubuntu 是否配置了邮件服务器?
  • 尝试使用 mail() 函数的 var_dump 来检查返回值: ` 如果邮件被成功接收,则返回 TRUE,否则返回 FALSE。需要注意的是,仅仅因为邮件被接受投递,并不意味着邮件实际上会到达预定目的地。`
  • 我不知道,我自己没有安装任何东西。我想知道默认情况下它自己使用的 Wordpress 的 php 邮件功能,它是否需要一个邮件服务器才能工作?它在共享主机上是如何工作的?
  • 查看 php mail() 手册,它会将电子邮件消息传递到系统,但 php 本身并不发送邮件。
  • var_dump bool(false) 所以我需要为 php 邮件功能配置邮件服务器才能实际工作?

标签: php laravel


【解决方案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 <info@address.com>' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";    

$status = mail('myaddress@gmail.com', 'My Subject', 'test', $headers);

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

【讨论】:

    【解决方案2】:

    这可能是因为 .env 文件选项覆盖了您的 config/mail.php 选项。从 .env 中删除这些所有重复的选项,并检查 .env 中的邮件驱动程序“MAIL_DRIVER”。它应该是MAIL_DRIVER=smtp

    Answer reference

    【讨论】:

      猜你喜欢
      • 2013-06-27
      • 2012-02-04
      • 2011-08-02
      • 2014-05-30
      • 1970-01-01
      • 2020-03-26
      • 2011-09-16
      • 1970-01-01
      相关资源
      最近更新 更多