我设置了两个环境,我们称一个开发人员和一个质量检查人员。两者都通过我们应用运行的laravel远程到我的本地计算机。两者都指向SMTP服务器以发送电子邮件。一个(dev)有效,一个(QA)不起作用,但都没有抛出错误消息。
这是我的mail.php配置(名称更改为通用):
返回数组(
'driver' => 'smtp',
'host' => 'cereal.andmilk.com',
'port' => 25,
'from' => array('address' => '[email protected]', 'name' => 'Cereal is Good'),
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,
);
起初,我认为sendmail可能是问题所在,因为它在QA或Dev中都不存在,但这并没有真正的帮助,因为Dev在发送电子邮件方面没有任何麻烦。我猜想它仅必须存在于实际的smtp服务器上,在这种情况下为'cereal.andmilk.com'。
我发现一个可能的解决方案是将smtp服务器URL和端口列入白名单/打开。我发现要执行此操作的方法似乎需要root访问,而我目前在质量检查中还没有。我正在继续尝试调查这种思路,但是与此同时,在这个问题上我还可以进行其他任何故障排除吗?
Laravel是4.2版。
如果您的服务器不是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