我设置了两个环境,让我们调用一个Dev和一个QA。两个都远程到我的本地机器运行laravel我们的应用程序。两者都指向要发送电子邮件的SMTP服务器。一个(dev)工作,一个(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服务器上,在这种情况下是“Grain.andmilk.com”。
我发现一个可能的解决方案是将smtp服务器URL和端口列入白名单/打开。我发现这样做的方法似乎需要root访问权限,而我目前在QA上没有。我将继续尝试调查这一思路,但与此同时,我是否可以就此问题进行其他任何疑难解答?
Laravel是版本4.2。
答案 0 :(得分:0)
如果您的服务器不是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