@Nertyk

Как отправить два PDF файла на почту?

Здравствуйте, существует функция для конвертации html кода в pdf файл и его отправки:
public function actionSend($id)
    {
        $model = $this->findModel($id);
        $pdf = new Pdf([
            'mode' => Pdf::MODE_UTF8, // leaner size using standard fonts
            'content' => $this->renderPartial('act.php', [
                'model' => $this->findModel($id),
            ]),
            'cssFile' => '@vendor/kartik-v/yii2-mpdf/src/assets/kv-mpdf-bootstrap.css',
            'cssInline' => '.img-circle {border-radius: 50%;}',
            'options' => [
                'title' => 'Счёт',
                'subject' => 'Generating PDF files via yii2-mpdf extension has never been easy'
            ],
            'methods' => [
                'SetHeader' => ['Generated By: ARIANA WORLDWIDE||Generated On: ' . date("r")],
                'SetFooter' => ['|Page {PAGENO}|'],
            ]

        ]);
        //echo $this->render('act', ['model' => $model]);
        if ($id) {
            $content = $pdf->content;
            $filename = $pdf->filename;

            /*$mpdf = $pdf->getApi();
            $mpdf->WriteHtml($content);*/
            ob_clean();
            $path = $pdf->Output($content, Yii::getAlias('@root_folder') . '/frontend/uploads/' . $filename . 'Act.pdf', \Mpdf\Output\Destination::FILE);
            $sendemail = Yii::$app->mailer->compose()
                ->attach(Yii::getAlias('@root_folder') . '/frontend/uploads/' . $filename . 'Act.pdf')
                ->setFrom('nik.obaturov@yandex.ru')
                ->setTo('nik.obaturov@yandex.ru')
                ->setCc('nik.obaturov@yandex.ru')
                ->setSubject('Счёт Alisa Market')
                ->send();
            if ($sendemail) {
                unlink(Yii::getAlias('@root_folder') . '/frontend/uploads/' . $filename . 'Act.pdf');
                return $this->render('act');
            }

        }

Теперь необходимо, чтобы отправлялось два файла, двух разных кодов, но одним письмом, как это сделать?
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Указываете несколько attach()
$sendemail = Yii::$app->mailer->compose()
                ->attach(Yii::getAlias('@root_folder') . '/frontend/uploads/' . $filename . 'Act1.pdf')
                ->attach(Yii::getAlias('@root_folder') . '/frontend/uploads/' . $filename . 'Act2.pdf')
                ->attach(Yii::getAlias('@root_folder') . '/frontend/uploads/' . $filename . 'Act3.pdf')
               /* остальной код */


p.s.
Зачем создавать лишний псевдоним '@root_folder'? Вам недостаточно стандартных псевдонимов типа @frontend или @webroot?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
Берёте любой готовый класс/библиотеку/компонент для отправки почты с PHP, например:
1. Swiftmailer
2. PHPMailer
3. php_libmail

Насколько я помню, помимо прочего, они позволяют прикреплять любое кол-во файлов к e-mail письму (перед его отправкой).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы