Я бился головой об этом некоторое время и не смог найти каких-либо полезных статей по моим вопросам. Я пишу сайт PHP, используя встроенную почтовую функцию для некоторых быстрых электронных писем с подтверждением. Я понимаю, что существует довольно много предубеждений против встроенной почтовой функции, но до сих пор она работала хорошо для меня, и я хотел бы иметь возможность продолжать ее использовать. Когда я отправляю просто текстовое электронное письмо, все прекрасно работает, как будто я отправляю только электронное письмо в формате HTML. Тем не менее, если я попытаюсь создать составное текстовое / HTML-сообщение, обе версии будут отображаться в моем почтовом клиенте (пробовал thunderbird и gmail) Я надеюсь, что кто-то здесь может помочь мне понять, что я делаю неправильно (кроме использования mail () вместо PHPMail). Вот мой фрагмент кода
$uid = md5(uniqid(time()));
$strSubject = "Confirmation for $strEventName on $strEventDate";
$strHTMLMsg = "<h1><center>You are confirmed for the following event:</center></h1><br>\n$strEvenDetails";
$strMsg = strip_tags($strHTMLMsg);
$toEmail = "\"$strName\" <$strEmail>";
$header = "$FromEmail\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\n\n";
$header .= "Content-Transfer-Encoding: 7bit\n";
$header .= "This is a MIME encoded message.\n\n";
$header .= "--".$uid."\n";
$header .= "Content-type:text/plain; charset=UTF-8\n";
$header .= "Content-Transfer-Encoding: 7bit\n\n";
$header .= $strMsg."\n\n";
$header .= "--".$uid."\n";
$header .= "Content-type:text/HTML; charset=UTF-8\n";
$header .= "Content-Transfer-Encoding: 7bit\n\n";
$header .= $strHTMLMsg."\n\n";
$header .= "--".$uid."\n";
$header .= "Content-Type: application/ics; name=\"".$strFileName."\"; method=PUBLISH; charset=UTF-8\n";
$header .= "Content-Transfer-Encoding: 7bit\n";
$header .= "Content-Disposition: attachment; filename=\"".$strFileName."\"\n\n";
$header .= $strICSEvent."\n\n";
$header .= "--".$uid."\n";
$bSuccess = mail($toEmail,$strSubject,"",$header);
Задача ещё не решена.
Других решений пока нет …