Мой код:
$to = 'example@example.com'; $subject = $_REQUEST['subject'] ; $message = $_REQUEST['message'] ; $header = "From: noreply@example.com\r\n"; $header.= "MIME-Version: 1.0\r\n"; $header.= "Content-Type: text/html; charset=ISO-8859-1\r\n"; $header.= "X-Priority: 1\r\n"; mail($to, $subject, $message, $header);
Когда я отправляю почту со специальными символами, такими как ®ð-˚©-ʼ“æ,˚ˍðß©
, в сообщении это работает, но интервал больше не обрабатывается (каждая новая строка или пространство удаляется) И вторая проблема что специальные символы не отображаются в объекте. Они просто выводятся следующим образом: øʼªʼ
Заранее спасибо!
Content-Type: text / html
Если вы установите этот заголовок, это означает, что вы должны отправить HTML пользователю. Вы можете либо использовать что-то вроде TinyMCE, чтобы позволить пользователю написать сообщение в редакторе Word-стиля и использовать вывод HTML из этого. Или установите заголовки в открытый текст.
Content-Type: text / plain
EDIT: попробуйте это
$to = 'example@example.com'; $subject = $_REQUEST['subject'] ; $message = $_REQUEST['message'] ; $header = "From: noreply@example.com\r\n"; $header.= "MIME-Version: 1.0\r\n"; $header.= "Content-Type: text/plain; charset=utf-8\r\n"; $header.= "X-Priority: 1\r\n"; mail($to, $subject, $message, $header);
Я использовал этот заголовок, и это сработало для меня …
$headers = ''; $headers = 'MIME-Version: 1.0'.PHP_EOL; $headers .= 'Content-type: text/html; charset=iso-8859-1'.PHP_EOL; $headers .= 'From: webmaster@example.com<From: webmaster@example.com>'.PHP_EOL;
проблема с вашим кодом связана с тем, что специальным символам нужна специальная кодировка.
Попробуйте изменить charset = ISO на charset = UTF8 …
Кроме того, функции PHP mail () работают нормально, но вы найдете намного больше преимуществ и вариантов, если вы пойдете на лучшее решение, такое как Swift Mailer
Не используйте функцию mail (). Используйте полностью созданный класс, который делает (правильно) работу для вас.