User 13204940 Ответов: 1

Электронная почта с вложениями теряет стиль PHP


Привет,

Раньше у меня был некоторый код для отправки электронной почты без вложений, просто текст с включенным html, поэтому у меня были пользовательские шрифты, цвета фона и т. д. Теперь я добавил поддержку вложений в свой код, но что-то заставляет игнорировать атрибуты семейства шрифтов.

Текущий код:
<pre>$uid = md5(uniqid(time()));
        $filename = 'invoice.html';
        $file_size = filesize($filepath);
        $content = chunk_split(base64_encode(file_get_contents($filepath)));

        $headers = "From: Me <myemail.co.uk>\r\n";
        $headers .= "Reply-To: myemail.co.uk\r\n";
        $headers .= "MIME-Version: 1.0\r\n";

        $headers .= "Content-Type: multipart/mixed; boundary=\"" . $uid . "\"\r\n\r\n";
        $headers .= "This is a multi-part message in MIME format.\r\n";
        $headers .= "--" . $uid . "\r\n";

        $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
        // html is now enabled
        $headers .= $message . "\r\n\r\n";
        $headers .= "--" . $uid . "\r\n";
        $headers .= "Content-Type: application/octet-stream; name=\"" . $filename . "\"\r\n";
        $headers .= "Content-Transfer-Encoding: base64\r\n";
        $headers .= "Content-Disposition: attachment; filename=\"" . $filename . "\"\r\n\r\n";
        $headers .= $content . "\r\n\r\n";
        $headers .= "--" . $uid . "--";

Теперь это называется использованием:
mail('email@whatever', 'subject', '', $headers);

Но предыдущая версия, где работали шрифты, была
mail('email@whatever', 'subject', 'body', $headers); // headers are only mime-version and content-type of html


Любая помощь в выявлении этой проблемы будет признательна c:

Что я уже пробовал:

----------------------------------------------------------------------------------------------------

1 Ответов

Рейтинг:
2

Jochen Arndt

Все, что я вижу, это то, что после заголовков HTML-частей отсутствует новая последовательность строк (перед заголовками HTML-частей). $messageЭти заголовки частей должны быть отделены от содержимого пустой строкой, как заголовки от содержимого простых писем с одной частью. Вы сделали это правильно с частью вложения файла.

Если проблема все еще существует после ее устранения, то она связана не с показанным кодом, а с созданием вашего сообщения. Чтобы проверить это, напишите $message в файл и откройте его с помощью браузера.


[no name]

Ты имеешь в виду я должен был $заголовки .= "Содержимое-тип:текст/HTML;кодировка=кодировка UTF-8" . "\р\н\р\н"; вместо $заголовки .= "Содержимое-тип:текст/HTML;кодировка=кодировка UTF-8" . "\р\н";?

Jochen Arndt

Да.