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 邮件未发送的主要内容,如果未能解决你的问题,请参考以下文章
Laravel5.5 邮件驱动使用 SMTP 驱动实现邮件发送