@EVOSandru6

Как в php в mail отправить несколько файлов разного типа без библиотек?

Добрый день,

Есть необходимость отправлять письма, прикрепляя к ним файлы (excel, doc, pdf)

При этом важно не использовать библиотеки.

Автор данной статьи показывает как можно отправить один pdf файл жестко прописав его тип:
www.texelate.co.uk/blog/post/56-send-an-email-atta...

Очень интересует, каким образом можно прикрепить несколько файлов разных типов хотя бы на примере 2-х файлов.

/** Конфигурация */
        $name        = "Name goes here";
        $email = 'evosduple@gmail.com';
        $to          = "$name <$email>";
        $from        = "John-Smith ";
        $subject     =   Yii::app()->params['subjects']['subscribe'];
        $mainMessage = "Приветствуем, высылаем Вам файлы";
        $fileatt     = 'images' . '/' . 'attachments' . '/' . 'test.pdf';

        $fileatttype = "application/pdf";
        $fileattname = "newname.pdf";
        $headers = "From: $from";

        /** Файл */
        $file = fopen($fileatt, 'rb');
        $data = fread($file, filesize($fileatt));
        fclose($file);

        // Прикрепление

        $semi_rand     = md5(time());
        $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
        $headers      .= "\nMIME-Version: 1.0\n" .
            "Content-Type: multipart/mixed;\n" .
            " boundary=\"{$mime_boundary}\"";
        $message = "This is a multi-part message in MIME format.\n\n" .
            "-{$mime_boundary}\n" .
            "Content-Type: text/plain; charset=\"utf-8\n" . //iso-8859-1
            "Content-Transfer-Encoding: 7bit\n\n" .
            $mainMessage  . "\n\n";

        $data = chunk_split(base64_encode($data));
        $message .= "--{$mime_boundary}\n" .
            "Content-Type: {$fileatttype};\n" .
            " name=\"{$fileattname}\"\n" .
            "Content-Disposition: attachment;\n" .
            " filename=\"{$fileattname}\"\n" .
            "Content-Transfer-Encoding: base64\n\n" .
            $data . "\n\n" .
            "-{$mime_boundary}-\n";

        /** Отправка */
        if(mail($to, $subject, $message, $headers))
            echo "Досавлено";
        else
            echo "Error";


Может кто сталкивался с небиблиотечной отправкой?
  • Вопрос задан
  • 153 просмотра
Решения вопроса 2
DevMan
@DevMan
если вы ярый противник библиотек (хотя пора переставать им быть уже), то посмотрите как реализовано в либах.
Ответ написан
@EVOSandru6 Автор вопроса
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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