cURL 错误 60:使用 artisan 命令发送电子邮件时出现 SSL 证书问题
cURL error 60: SSL cert issue when sending email with artisan command
我在 Laravel 中发送电子邮件时遇到了一个奇怪的问题。
我使用 Mailgun,可以在用户注册时正常发送电子邮件等等。
我开始尝试使用调度命令并创建了一个自定义 artisan 命令来获取一些记录并为此发送一些电子邮件。
然而,当我 运行 这个命令时,我得到一个错误:
cURL error 60: SSL certificate problem: unable to get local issuer
certificate
我已经在本地设置了一个 cacert.pem
并在我的 php.ini
文件中成功链接了它,这就是我能够正常发送电子邮件的方式。
我不明白为什么我的命令不能发送电子邮件,而我可以在控制器中发送它们。
这是我用于命令的代码:
$reminders = Reminder::where('utcReminderDate' , '<=', \Carbon\Carbon::now()->format('Y-m-d H:i'))->get();
foreach($reminders as $reminder)
{
Mail::send('emails.test', [], function($message) {
$message->to('me@example.com', 'Joe Bloggs');
$message->subject('A reminder for you');
});
}
我想要获取所有需要发送的提醒并循环发送它们。
当我运行命令通过命令行测试它时,它吐出上面的错误。
如果您能帮助我们发送电子邮件,我们将不胜感激。如果有区别,我会使用 WAMP。
您可以修改供应商文件夹 GuzzleHttp\Client
将 verify
密钥从 configureDefaults
方法更改为 false
,就像我在本地机器上所做的那样
或
您可以阅读此 conversation in Laracasts 并尝试下载某些评论中的 .pem
文件。
以下是一些链接:
之后你应该相应地编辑你的 php.ini 文件:
curl.cainfo = "[pathtothisfile]\cacert.pem"
PS: 我会直接编辑供应商文件,因为它更快而且不难实现。
使用此代码:
$this->client = new GuzzleClient(['defaults' => [
'verify' => false
]]);
这对我有用。
显然 PHP 从 CLI 访问时可能会加载不同的 php.ini 文件。 See here.
将我的 php.ini 文件复制到 C:\windows
解决了这个问题。
我在 Laravel 中发送电子邮件时遇到了一个奇怪的问题。
我使用 Mailgun,可以在用户注册时正常发送电子邮件等等。
我开始尝试使用调度命令并创建了一个自定义 artisan 命令来获取一些记录并为此发送一些电子邮件。
然而,当我 运行 这个命令时,我得到一个错误:
cURL error 60: SSL certificate problem: unable to get local issuer certificate
我已经在本地设置了一个 cacert.pem
并在我的 php.ini
文件中成功链接了它,这就是我能够正常发送电子邮件的方式。
我不明白为什么我的命令不能发送电子邮件,而我可以在控制器中发送它们。
这是我用于命令的代码:
$reminders = Reminder::where('utcReminderDate' , '<=', \Carbon\Carbon::now()->format('Y-m-d H:i'))->get();
foreach($reminders as $reminder)
{
Mail::send('emails.test', [], function($message) {
$message->to('me@example.com', 'Joe Bloggs');
$message->subject('A reminder for you');
});
}
我想要获取所有需要发送的提醒并循环发送它们。
当我运行命令通过命令行测试它时,它吐出上面的错误。
如果您能帮助我们发送电子邮件,我们将不胜感激。如果有区别,我会使用 WAMP。
您可以修改供应商文件夹 GuzzleHttp\Client
将 verify
密钥从 configureDefaults
方法更改为 false
,就像我在本地机器上所做的那样
或
您可以阅读此 conversation in Laracasts 并尝试下载某些评论中的 .pem
文件。
以下是一些链接:
之后你应该相应地编辑你的 php.ini 文件:
curl.cainfo = "[pathtothisfile]\cacert.pem"
PS: 我会直接编辑供应商文件,因为它更快而且不难实现。
使用此代码:
$this->client = new GuzzleClient(['defaults' => [
'verify' => false
]]);
这对我有用。
显然 PHP 从 CLI 访问时可能会加载不同的 php.ini 文件。 See here.
将我的 php.ini 文件复制到 C:\windows
解决了这个问题。