Это будет мой первый вопрос здесь. Я пытаюсь отправить многостраничную почту, содержащую как html, так и обычный текст. Это также один из способов получить спам-фильтры и позволить большему количеству людей читать почту в случае отсутствия поддержки HTML. После долгих часов работы в Google, я нашел несколько примеров. Я сделал свой код, который отправляет почту, но она отображает текст с HTML-теги, код, строки и т.д.PHP MIME multipart mail
<?php
$boundary=md5(uniqid(rand()));
$header .= "From:My Name<[email protected]>\n";
$header .= "Reply-To: [email protected] \n";
$header .= 'MIME-Version: 1.0'."\r\n";
$header .= 'Content-type: multipart/alternative;boundary=$boundary '."\n";
$adres = "[email protected]";
$subject = "subject";
$message = "This is multipart message using MIME\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-type: text/plain;charset=iso-8859-1\n";
$message .= "Content-Transfer-Encoding: 7bit". "\n\n";
$message .= "Plain text version\n\n";
$message .="--" . $boundary . "\n";
$message .="Content-type: text/html;charset=iso-8859-1\n";
$message .= "Content-Transfer-Encoding: 7bit". "\n\n";
$message .="<html>
<body>
<center>
<b>HTML text version</b>
</center>
</body>
</html>\n\n";
$message .= "--" . $boundary . "--";
if(mail($adres, $subject, $message, $header))
{
print'message sent';
}
else
{
print'message was not sent';
}
?>
Это результат:
This is multipart message using MIME
--c071adfa945491cac7759a760ff8baeb
Content-type: text/plain;charset=iso-8859-1
Content-Transfer-Encoding: 7bit
Plain text version
--c071adfa945491cac7759a760ff8baeb
Content-type: text/html;charset=iso-8859-1
Content-Transfer-Encoding: 7bit
<html>
<body>
<center>
<b>HTML text version</b>
</center>
</body>
</html>
--c071adfa945491cac7759a760ff8baeb--
Как вы можете видеть, что отображается вместо одного сообщения. Я пробовал много решений, размещенных как:
- добавление/удаление \ r \ n;
- изменение \ r \ n на \ n;
- изменение типа контента из альтернативы смешанному;
Я изучаю PHP, и все, что я знаю, это все, что я прочитал и сделал до сих пор. Мне еще предстоит многому научиться, пожалуйста, если бы вы могли сказать мне, где проблема. Я был бы очень благодарен. Приветствую вас.
1. Вы смешивания '\ n' и' \ г \ n'. Помимо тел сообщений, где вы можете использовать w/e, вы хотите, чтобы вы ВСЕГДА использовали '\ r \ n' в разделах заголовков сообщений и содержимого. 2. Просто используйте [PHPMailer] (https://github.com/Synchro/PHPMailer). – Sammitch
3. Я думаю, вам понадобится еще один разрыв строки после этого: '$ message =" Это многостраничное сообщение с использованием MIME \ n ";' – Sammitch