2013-05-23 3 views
-1

Я не понимаю, что я делаю неправильно. У меня есть контактная форма, отправить сообщение с этим кодом:Отправить специальные символы электронной почтой()

$SUCCESS = mail(

    $EMAIL_TO, 

    "Richiesta informazioni", 

    "Questo messaggio e' stato inviato tramite la pagina 'Contatti' del sito ".$WEBSITE."; non rispondere a questo messaggio ma servirsi dei contatti lasciati dal mittente.\r\n\r\n". 
    "Inviato da: ".$_POST['nome']."\r\n". 
    "IP Address: ".$_SERVER['REMOTE_ADDR']."\r\n". 
    "Contatti: ".$_POST['contatti']."\r\n". 
    "------------------------------------------------------\r\n". 
    $_POST['messaggio']."\r\n", 

    "Reply-To: ".$COMPANY." <".$EMAIL_TO.">\r\n". 
    "Return-Path: ".$COMPANY." <".$EMAIL_TO.">\r\n". 
    "From: ".$COMPANY." <".$WEBSITE.">\r\n". 
    "Organization: ".$COMPANY."\r\n". 
    "MIME-Version: 1.0\r\n". 
    "Content-type: text/plain; charset=utf-8\r\n". 
    "Content-Transfer-Encoding: 8bit", 

    "-f".$EMAIL_TO 

); 

Проблемы в том, что, если я посылаю специальные символы ...

¡ 
¢ 
£ 
¤ 
¥ 

... Я получаю переведенные символы:

&Acirc;&iexcl; 
&Acirc;&cent; 
&Acirc;&pound; 
&Acirc;&curren; 
&Acirc;&yen; 

конечно, я пробовал много решений предложено в других дискуссиях:

// it's just a list - not the code I used! I've tryed lots of combinations. 
iconv_set_encoding("internal_encoding", "UTF-8"); 
iconv_set_encoding("output_encoding", "ISO-8859-1"); 
htmlspecialchars(...); 
mb_convert_encoding(...); 

Я obteined результат только с mb_convert_encoding:

$message = mb_convert_encoding($message, 'UTF-8', 'HTML-ENTITIES'); 

Но это не окончательное решение, потому что, если я использую эту функцию я получаю:

¡ 
¢ 
£ 
¤ 
Â¥ 

Я сожалею этот вопрос не полезен для сообщества! К несчастью, у меня кончились идеи, и мне нужна помощь ... что мне не хватает ???

+1

Что содержится в '$ _POST ['messaggio']'? Есть ли 'Â -> Â' или какой-либо другой нежелательный специальный символ, уже присутствующий в нем перед кодированием? – Fabio

+0

Люди должны знать, что именно вы пытались, и соответствующие результаты, а не смесь всего. Для начала скажите нам, что вы пытаетесь сейчас, и каков результат прямо сейчас. – Adder

+0

@Fabio: Как я могу это увидеть? –

ответ

0

заголовок изменения:

"Content-Type: text/plain; charset=UTF-8\n"; 

Для

"Content-Type: text/html; charset=UTF-8\n"; 

ниже код я изменился и можно добавить п проверить

"Reply-To: ".$COMPANY." <".$EMAIL_TO.">\r\n". 
"Return-Path: ".$COMPANY." <".$EMAIL_TO.">\r\n". 
"From: ".$COMPANY." <".$WEBSITE.">\r\n". 
"Organization: ".$COMPANY."\r\n". 
"MIME-Version: 1.0\r\n". 
"Content-Type: text/html; charset=UTF-8\r\n". 
"Content-Transfer-Encoding: 8bit", 

"-f".$EMAIL_TO 

я проверил с ниже код и его работы

<?php 
mail(

    "check with ur email", 

    "Richiesta informazioni", 

    "Questo messaggio e' stato inviato tramite la pagina 'Contatti' del sito; non rispondere a questo messaggio ma servirsi dei contatti lasciati dal mittente.\r\n\r\n". 
    "Inviato da: santanu\r\n". 
    "IP Address: santanu\r\n". 
    "Contatti: santanu\r\n". 
    "------------------------------------------------------\r\n 
    message ¡ 
¢ 
£ 
¤ 
¥\r\n", 

    "Reply-To: test <your email>\r\n". 
    "Return-Path: test<your email>\r\n". 
    "From: test <your email>\r\n". 
    "Organization: test\r\n". 
    "MIME-Version: 1.0\r\n". 
    "Content-type: text/html; charset=utf-8\r\n". 
    "Content-Transfer-Encoding: 8bit", 

    "-fyour email" 

); 

?> 
+0

Как и в случае с mb_convert_encoding(), я получаю: «Â¡  ¢      ¥». Почему перед каждым персонажем я получаю «Â»? –

+0

bcaz u r отправка содержимого в виде обычного текста, поэтому все специальные символы будут затронуты. – sAnS

+1

 содержит escape-код/​​префикс для плоскости латинского кода в UTF-8. – Adder

Смежные вопросы