У меня есть следующий код:
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "First Name: ".'<strong>'.clean_string($cname).'</strong>'."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
Эта форма затем отправляет мой адрес электронной почты, мне нужна первая строка сообщения:
Имя: Введенное имя
но я получаю:
Имя: <strong>
Введенное имя </strong>
Любая идея, почему теги html не поняты?
Большое спасибо
Вы должны определить свою электронную почту как "HTML":
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Send...
mail($to, $subject, $message, $headers);
он дает ошибку, потому что вы используете специальные символы в своей строке. с функцией htmlspecialchars вы можете преобразовать их в html, а затем это не даст никаких проблем. htmlspecialchars выйдут из <и> в вашем случае
больше информации можно найти в документации php http://fi2.php.net/manual/en/function.htmlspecialchars.php
Электронная почта по умолчанию отправляется в виде текстовых сообщений.
Чтобы почтовый клиент интерпретировал тело электронной почты как HTML, вам необходимо доставить тело в правильном формате, который указывается в поле Content-Type:
Content-Type: text/html; charset=iso-8859-1
Вы можете вставить это поле в дополнительный параметр заголовков функции PHP mail().
См. Пример № 4 в приведенной выше ссылке о том, как отправить HTML-адрес электронной почты с помощью PHP.
iso-8859-1
в качестве кодировки?