Laravel: прикрепите несколько файлов PDF к электронной почте - PullRequest
0 голосов
/ 25 апреля 2020

Ниже приведен код для отправки PDF с электронной почтой:

        $pdf = PDF::loadHTML($str_html)->setPaper('a4', 'portrait');  

        Mail::send('emails.mail', $data, function($message) use ($data,$pdf){
            $message->from('noreply@...');
            $message->to('...');
            $message->subject('test test');
            //Attach PDF doc
            $message->attachData($pdf->output(),'invoice.pdf');
        });

Но мое требование состоит в том, чтобы отправить несколько PDF-файлов с электронной почтой, как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 25 апреля 2020
$attachments = [
    // first attachment
    '/path/to/file1',

    // second attachment
    '/path/to/file2',
    ...
];

    $pdf = PDF::loadHTML($str_html)->setPaper('a4', 'portrait');  

    Mail::send('emails.mail', $data, function($message) use ($data,$pdf){
        $message->from('noreply@...');
        $message->to('...');
        $message->subject('test test');
        //Attach PDF doc

        foreach($attachments as $filePath){
              $message->attach($filePath);
        }
    });
0 голосов
/ 26 апреля 2020

Тайбур Рахман дает ответ в комментарии, новые переменные PDFs должны быть добавлены в «использование», тогда код будет правильным.

Полный код:

        $pdf = PDF::loadHTML($str_html)->setPaper('a4', 'portrait');

        $pdf2 = PDF::loadHTML($str_html2)->setPaper('a4', 'portrait'); 

        Mail::send('emails.mail', $data, function($message) use ($data, $pdf, $pdf2){
            $message->from('...@...');
            $message->to(...@...);
            $message->subject('test test');
            $message->attachData($pdf->output(),'test.pdf');
            $message->attachData($pdf2->output(),'test2.pdf');

        }); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...