Laravel将邮件发送到多个配方并添加多个文件

时间:2017-12-02 14:45:51

标签: laravel

我的控制器出现问题,要向多个收件人发送邮件,

我的邮件收件集收到了非法的偏移异常。

我尝试发送只有一个用户的邮件来查看我的代码发送多个文件的工作,这是工作但是当我检查邮件时文件没有加载好的扩展名我得到类似的东西:

enter image description here

当我更新代码以获取扩展名时:

  

$间 - >附加($文件[$ i]于) - > getClientOriginalName();

我得到以下例外:

  

Swift_IoException无法打开文件阅读[banner.png]

我在这里做错了什么?

希望有人能帮助我解决我的两个问题。非常感谢提前

这是我的控制器:

public function postSendMassive(Request $request){

        $files = $request->file('uploads');

        $emails = Structure::where('type_structure_id', 4)->pluck('adresse_email_structure');

        $data = array(

            'subject' => $request->subject,
            'bodyMessage' => $request->texte
        );

        Mail::send('email.MassiveMail', $data, function($m) use ($data , $emails , $files)
        {

            $m->to($emails)
                ->subject('subject');
                $size = sizeOf($files); //get the count of number of attachments

                    for ($i=0; $i < $size; $i++) {
                        $m->attach($files[$i]);
                    }
        });

        return back()->with('status', "Email envoyé");

    }

1 个答案:

答案 0 :(得分:1)

您需要指定文件的完整路径,而不仅仅是文件名,这里有详细描述 - https://laravel.com/docs/5.5/mail#attachments

public function build()
{
    return $this->view('emails.orders.shipped')
                ->attach('/path/to/file');
}

根据您保存文件的位置,它可能如下所示:

for ($i=0; $i < $size; $i++) {
    $path = realpath('storage/uploads/' . $files[$i]);
    $m->attach($path);
}