- Home
- Categorie
- Coding e Sistemistica
- Coding
- Lettere accentate in una mail
- 
							
							
							
							
							
Lettere accentate in una mailCiao a tutti, ho un problemino, spiego subito 
 ho uno script che invia una mail, con un campo messaggio, solo che quando mi arriva le lettere accentate mi da dei simboli strani, sapreste dirmi a cosa è dovuto ciòGrazie da danny  
 
- 
							
							
							
							
							Ciao, è un problema di codifica caratteri? Potresti fare una prova leggendo le mail con browser diverso, oppure settando dai browser medesimi la codifica, ad es.: Unicode (UTF-8); Occidentale (ISO-8859-1). 
 
- 
							
							
							
							
							
Prova a passare il testo del messaggio nella funzione utf8-decode(), prima di inserirlo nella funzione mail(). Da dove le leggi le email? 
 
- 
							
							
							
							
							
Ciao ragazzi, grazie per avermi risposto, vi posto il codice così ci capiamo, tutto funziona correttamente tranne le lettere con l'accento 
 [php]
 require "connessione/Config.php";
 require "connessione/Connect.php";
 if(isset($_POST['mail']))
 {
 $email = trim(stripslashes($_POST['mail']));
 $mittente = trim(stripslashes($_POST['mittente']));
 $messaggio = trim(stripslashes(nl2br($_POST['richiesta'])));
 //queste le ho provate entrambe
 //$mess = str_replace("à", "à", $messaggio);
 //$messaggio = str_replace("è", "e", $messaggio);
 //$messaggio = str_replace("é", "e", $messaggio);
 //$messaggio = str_replace("ì", "i", $messaggio);
 //$messaggio = str_replace("ò", "o", $messaggio);
 //$messaggio = str_replace("ù", "u", $messaggio);
 if(!$email || !$mittente || !$messaggio)
 {
 header('location:'.'index.php?settore=risp_ko');
 exit;
 }// Genera un boundary 
 $mail_boundary = "=NextPart" . md5(uniqid(time()));// inserire mail destinatario 
 $to = "[email protected]";
 $subject = "Informazioni";
 // inserire mail mittente
 $sender = "$email";
 $headers .= "Content-Type: text/html; charset="iso-8859-1"\n";
 $headers = "From: $sender\n";
 $headers .= "MIME-Version: 1.0\n";
 $headers .= "Content-Type: multipart/alternative;\n\tboundary="$mail_boundary"\n";
 $headers .= "X-Mailer: PHP " . phpversion();$html_msg = " <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
 <HTML>
 <HEAD>
 <META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
 </HEAD>
 <BODY>
 <table cellspacing = '0' cellpadding = '0' border = '0'>
 <tr>
 <td valign = 'top' height= '40'>
 <font face = 'Comic Sans MS' size = '4'>
 Richiesta Informazioni
 </font>
 </td>
 </tr>
 <tr>
 <td>
 <font face = 'Comic Sans MS, Verdana' size = '2'>
 <b>Informazioni sul richiedente</b><br>
 Nome: $mittente<br>
 Indirizzo e-mail: $email<br><br>
 <b>Messaggio</b><br>
 $messaggio<br><br>
 </font><br><br><br>
 </td>
 </tr>
 </table>
 </BODY>
 </HTML>";$msg .= "\n--$mail_boundary\n"; 
 $msg .= "Content-Type: text/html; charset="iso-8859-1"\n";
 $msg .= "Content-Transfer-Encoding: 8bit\n\n";
 $msg .= $html_msg; // aggiungi il messaggio in formato HTML// Boundary di terminazione multipart/alternative 
 $msg .= "\n--$mail_boundary--\n";// Imposta il Return-Path (funziona solo su hosting Windows) 
 ini_set("sendmail_from", $sender);// Invia il messaggio, il quinto parametro "-f$sender" imposta il Return-Path su hosting Linux 
 if (mail($to, $subject, $msg, $headers, "-f$sender"))
 {
 header('location:'.'index.php?settore=risp_ok');
 exit;
 }
 else
 {
 header('location:'.'index.php?settore=risp_ko');
 exit;
 }
 }
 else
 {
 header('location:'.'index.php');
 exit;
 }
 [/php]Ciao da danny 
 
- 
							
							
							
							
							
elimina direttamente tutta questa parte: <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"> <HTML> <HEAD> <META http-equiv=Content-Type content=\"text/html; charset=iso-8859-1\"> </HEAD>insieme al tag </HTML> in chiusura. Poi cancella anche: [PHP] $msg .= "Content-Type: text/html; charset="iso-8859-1"\n";[/PHP] in questo modo hai tutte le dichiarazioni del charset la dichiarazione del charset e così dovrebbe andare. Probabilmente fa a pugni col fatto che il file che contiene questo script e codificato in utf-8. Se non fosse sufficiente, prova a modificare la riga: [PHP] if (mail($to, $subject, $msg, $headers, "-f$sender")) [/PHP] così: [PHP] if (mail($to, $subject, utf8_decode($msg), $headers, "-f$sender")) [/PHP] 
 
- 
							
							
							
							
							
Ciao e grazie per la dritta, è bastato modificare solo l'ultima riga utf8_decode($msg) facendo le altre operazioni richieste non mi formattava html Ciao e grazie da danny 