Laravel SMTP 邮件未发送

Posted

技术标签:

【中文标题】Laravel SMTP 邮件未发送【英文标题】:Laravel SMTP mail not sending 【发布时间】:2016-03-21 16:22:28 【问题描述】:

我设置了两个环境,一个是 Dev,一个是 QA。两者都远程到我的本地机器,运行着一个 laravel 我们的应用程序。两者都指向 SMTP 服务器以发送电子邮件。一个(开发)有效,一个(QA)无效,但都不会抛出错误消息。

这是我的 mail.php 配置(为了通用而更改了名称):

返回数组(

'driver' => 'smtp',
'host' => 'cereal.andmilk.com',
'port' => 25,
'from' => array('address' => 'order@cereal.com', 'name' => 'Cereal is Good'),
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,

);

起初我认为 sendmail 可能是问题所在,因为它在 QA 或 Dev 中都不存在,但这并没有真正帮助,因为 Dev 发送电子邮件没有问题。我猜它只需要存在于实际的 smtp 服务器上,在本例中为 'cereal.andmilk.com'。

我发现的一个潜在解决方案是将 smtp 服务器 URL 和端口列入白名单/打开。我发现的方法似乎需要 root 访问权限,而我目前在 QA 上没有。我将继续尝试调查该思路,但与此同时,我可以针对此问题进行任何其他故障排除吗?

Laravel 是 4.2 版。

【问题讨论】:

我不能使用除主机以外的 smtp。我所做的是更改为 mandrill 的 api,其中没有使用 smtp。 触发邮件时遇到什么错误? 【参考方案1】:

如果您的服务器不是 https,那么您需要将此代码添加到您的 mail.php 文件中

'stream' => [
   'ssl' => [
      'allow_self_signed' => true,
      'verify_peer' => false,
      'verify_peer_name' => false,
   ],
],

或者您可以点击此链接,这将对您有所帮助:how to fix stream_socket_enable_crypto(): SSL operation failed with code 1

【讨论】:

以上是关于Laravel SMTP 邮件未发送的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 发送电子邮件 SMTP

Laravel5 --- QQ邮箱发送邮件

Laravel5.5 邮件驱动使用 SMTP 驱动实现邮件发送

通过 Madrill SMTP 发送 Laravel 4 电子邮件

Laravel Smtp 发送邮件

发送邮件 Laravel XAMPP SMTP