gpt4 book ai didi

php - 段错误(核心转储)Laravel SwiftMailer

转载 作者:行者123 更新时间:2023-12-04 18:33:50 26 4
gpt4 key购买 nike

我在使用 SwiftMailer Laravel 5.2 时遇到问题。我有一个用于发送电子邮件的 Controller ,我将其设置为每分钟运行一次。当我使用 php artisan schedule:run 执行下面的脚本时,它会不断返回错误消息“段错误(核心转储)”。

我的脚本:

public static function sendMailCoc()
{
$mail_log = MailLog::where('status', '!=', 'SENT')->where('type', '3')->orderBy('id', 'asc')->get();
foreach($mail_log as $mail){
if($mail->to!='') {
$coc = json_decode($mail->parameter, true);
try {
Mail::queue($mail->file_view,
['to' => $mail->to_name,
'coc' => $coc,
'notif_id' => $mail->notification_id
],
function ($message) use ($mail) {
$message->to($mail->to)
->subject($mail->subject);
});
$mail->status = 'SENT';
$mail->error_message = '';
$mail->save();
}
catch(Swift_TransportException $e){
$mail->status = 'ERROR';
$mail->error_message = $e->getMessage();
$mail->save();
continue;
}catch (Exception $e) {
$mail->status = 'ERROR';
$mail->error_message = $e->getMessage();
$mail->save();
continue;
}

}
}
}

有时,如果我测试只发送一封电子邮件,它会起作用并且不会返回错误消息。但是当我尝试发送大量带有循环的电子邮件时,它总是会收到一条错误消息“段错误(核心转储)”。我正在使用 Ubuntu 服务器 14.04。

我不知道是什么导致了这个错误。是我的脚本导致了这个问题,是 Laravel 还是 Ubuntu Linux?

有没有办法解决这个问题?我应该先检查什么?

感谢您的帮助和回答。

最佳答案

狂野的镜头,但我最近一直在调试与排队作业相关的相同错误消息:

根据 Laravel 5.6 文档(https://laravel.com/docs/5.6/queues#creating-jobs):

"Binary data, such as raw image contents, should be passed through the base64_encode function before being passed to a queued job. Otherwise, the job may not properly serialize to JSON when being placed on the queue."



我添加 base64_encode($input) 后,我的问题就解决了(几乎!)在构造函数和 base64_decode($this->input)在句柄()函数中。

PS:由于我使用两个分布式应用程序进行输入和处理队列,我还必须运行 composer dump-autoloadphp artisan cache:clear在两个应用程序上,同时重新启动 supervisor worker ,在进行代码更改后。

关于php - 段错误(核心转储)Laravel SwiftMailer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51365950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com