leni_m
@leni_m
ЧупаКобрус

Как отправить на почту вложение на php?

Здравствуй Тостер!
Пытаюсь отправить вложение(pdf файл на почту) обычным php.
Нашел код в инете и написал функцию
public static function sendEmailInvoicePdf($filename, $email)
    {
        $name        = "Название здесь идет";
        $to          = "$name <$email>";
        $from        = "Вася";
        $subject     = "Тема";
        $mainMessage = "Привет,я сообщение с pdf файлом";
        $fileatt     = $filename; // Расположение файла
        $fileatttype = "application/pdf";
        $fileattname = "test.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 = "Это multi-part сообщение в формате MIME․\n\n" .
            "-{$mime_boundary}\n" .
            "Content-Type: text/html; charset=\"utf-8 \n" .
            "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 "При отправке почты произошла ошибка.";
        }
    }

Вообщем на яндекс почту приходит валидный pdf, $subject(тема письма) тоже отображается, а вот тело сообщения не отображается.
На мэил.ру вообще не приходит письмо.
На аутлук приходят кракозябры и файл pdf не открыть - пишет ошибку, тип корявый pdf.

Фреймворк почтовый что-ли использовать или у меня какие-то ошибки?
  • Вопрос задан
  • 1971 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

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