首页 > 解决方案 > Laravel Job Mail 文件无法打开文件

问题描述

我想添加一个工作来向一大串地址发送邮件;但我有一个例外

Swift_IoException:无法打开文件进行读取

我的方法在没有这项工作的情况下工作得很好,但是现在当我使用带有数据库的调度工作时,我得到了这个错误。有人知道我为什么会得到例外吗?

当我直接在控制器中使用它时,附件工作:

if($request->uploads){

            foreach($request->uploads as $file) {
                $files[] = [
                    'file' => $file->getRealPath(),
                    'options' => [
                        'mime' => $file->getClientMimeType(),
                        'as'    => $file->getClientOriginalName()
                    ],
                ];
            }

        }else{

            $files = null;

        }

    Mail::to($emails)->send(new MassiveEmail($subject , $bodyMessage , $files));

但是当我使用它时,它不起作用:

$job = (new SendEmailMassiveJob($emails , $subject , $bodyMessage , $files))
            ->delay(Carbon::now()->addSeconds(10));

        dispatch($job);

这是我的工作课程:

public function handle()
    {

        $emails = $this->emails;
        $subject = $this->subject;
        $bodyMessage = $this->bodyMessage;
        $files = $this->files;

        foreach ($emails as $email){

            Mail::to($email)->send(new MassiveEmail($subject , $bodyMessage , $files));

        }
    }

这是我的邮件类,当我附加文件时会产生错误:

public function build()
    {

        $subject = $this->subject;
        $bodyMessage = $this->bodyMessage;
        $files = $this->files;

        $email =  $this->markdown('email.MassiveMail',compact('bodyMessage'))
            ->subject($subject.'-'.'FFRXIII Licences & Compétitions');

        if($files){

            foreach($files as $file) {
                $email->attach($file['file'],$file['options']);
            }

        }

        return $email;
    }

标签: laravel

解决方案


推荐阅读