2015-12-16 1 views
0

У меня возникла странная проблема с отправкой писем в Laravel.ошибка cURL 60: проблема с сертификатом SSL при отправке электронной почты с помощью команды artisan

Я использую 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('[email protected]', 'Joe Bloggs'); 
      $message->subject('A reminder for you'); 
     }); 
    } 

Я хотел, чтобы все напоминания, которые должны быть отправлены и цикл через них, чтобы отправить их.

Когда я запускаю команду для ее проверки через командную строку, она выплевывает ошибку выше.

Любая помощь, получающая электронные письма для отправки, была бы чрезвычайно оценена. Я использую WAMP, если это имеет значение.

+0

обычно cli использовать разные php.ini – wayne

ответ

0

Вы можете либо изменить папку поставщика GuzzleHttp\Client изменения verify ключ к false от configureDefaults метода, как я сделал в моей локальной машине

или

Вы можете прочитать conversation in Laracasts и попробовать загрузку .pem файлов некоторые из комментариев.

Вот некоторые ссылки:

После этого вы должны отредактировать файл php.ini соответственно:

curl.cainfo = "[pathtothisfile]\cacert.pem" 

PS: Я бы просто отредактировал файл поставщика, потому что это намного быстрее и не сложно реализовать.

+0

Я попробую изменить файл поставщика, так как у меня уже есть 'cacert.pem', как я уже упоминал. – James

+0

Изменение файла поставщика сделало трюк – James

+0

Im рад я мог помочь :) –

0

Используйте этот код:

$this->client = new GuzzleClient(['defaults' => [ 
    'verify' => false 
]]); 

Это работает для меня.

Смежные вопросы