У меня есть следующий код:
$subject = "Test Email"; $from = "noreply@bob.com"; ini_set("sendmail_from", $from); $message = "<html><body bgcolor=\"#DCEEFC\"> Hello<br><br> This is a <b>test</b> email. <br><br><hr> <a href=\"\">Click Here</a> <br><br><hr> <br><br> Thank you for your time,<br><br> </body></html>"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html\r\n"; $headers .= "From: " . $from . "\r\n"; mail($mail, $subject, $message, $headers);
Однако, когда я отправляю электронное письмо себе, я вижу весь код в Outlook. Если я отправлю его кому-то другому, они видят HTML. Если я отправлю его на мой hotmail, они видят HTML.
Является ли это проблемой для моего прогноза (2007), если да, что это, или я могу что-то сделать в письме, чтобы гарантировать его правильное отображение?
Пожалуйста помоги!
Я нашел проблему:
HTML-адрес электронной почты, который не отображается правильно для веб-почты Godaddy
Изменен:
$headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html\r\n"; $headers .= "From: " . $from . "\r\n";
чтобы:
$headers = "MIME-Version: 1.0" . PHP_EOL; $headers .= "Content-Type: text/html; charset=ISO-8859-1" . PHP_EOL; $headers .= "From: Site<$from>" . PHP_EOL;
Спасибо всем за помощь! 🙂
Похоже, вы настроили свой внешний вид на отображение сообщений в виде обычного текста независимо от формата, в котором они отправлены.
Перейдите в свои прогнозы и измените его, чтобы просмотреть сообщения в том формате, в котором они поступают.
Попытайтесь изменить порядок заголовка. Я помню, что с той же проблемой некоторое время назад, и это сработало после того, как я использовал следующие заголовки:
$headers = "From: " .$from. "\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=iso-8859-1\r\n"; $headers .= "Content-Transfer-Encoding: 8bit\r\n";
Я бы рекомендовал использовать готовый к использованию PHP-почтовый класс – это облегчает жизнь.