Accenti in una mail

  • Creatore Discussione Creatore Discussione minatore
  • Data di inizio Data di inizio

minatore

Utente Attivo
25 Set 2007
410
0
0

Un buongiorno a tutti gli amici del forum, ho un problemino, a dire la verità avevo già fatto altre volte questa cosa, ma adesso mi è saltato agli occhi un errore nelle parole accentate, vi spiego
da un sito faccio inviare una mail, e va bene, nella pagina invio.php ho
PHP:
$messaggio = trim(stripslashes(nl2br($_POST['richiesta'])));
ho provato diverse soluzioni, tra cui
PHP:
$messaggio = htmlentities($_POST['richiesta']);
poi
PHP:
$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);
ma il problema quando arriva la mail rimane lo stesso, come posso gestire questi caratteri
Grazie da minatore
 

Ciao ragazzi, molte visite ma nessuna risposta :incazz2:
qualcuno ha un'idea

Ciao da minatore
 
specifica il set dei coratteri utilizzato nell'header, ad esempio:
PHP:
$header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
 
specifica il set dei coratteri utilizzato nell'header, ad esempio:
PHP:
$header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";


Ciao Eliox, ti posto lo script, ho fatto come dicevi, ma nella mail che arriva ci sono caratteri strani
PHP:
if(isset($_POST['mail']))
	{
		$email = trim(stripslashes($_POST['mail']));
		$mittente = trim(stripslashes($_POST['mittente']));
		$messaggio = trim(stripslashes(nl2br($_POST['richiesta'])));
//queste le ho asteriscate perchè non mi sono servite
		//$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);

		// 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;
	}

Ho provato il tuo consiglio infatti se guardi lo script c'è ancora
Ciao e grazie per avermi risposto
 
ciao
forse sarà perchè uso phpmailler, ma non ho il problema, mi sono inviato una em cpn tutti gli accenti e quardando l'html questo è il risultatto
HTML:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=iso-8859-1">
<!-- indirizzi ecc.. -->
<P>è é ò à ù</P>
 

Ciao e grazie ragazzi, ho risolto facendo così
PHP:
if (mail($to, $subject, utf8_decode($msg), $headers, "-f$sender"))
non sarà il massimo della professionalità, ma per adesso funziona
appena trovo qualcosa di meglio lo cambio.
Vorrei lanciare un appello, perchè non inserite nel forum un bel codice di invio email
bello spiegato e che funzioni per tutti.
Di semplici c'è ne sono tanti ma come ci vai a mettere le mani per modificare qualcosa
si riscontrano dei problemini

Ciao da minatore
 
Ciao e grazie ragazzi, ho risolto facendo così
PHP:
if (mail($to, $subject, utf8_decode($msg), $headers, "-f$sender"))
hai provato introducendo la codice UTF-8 direttamente nell'header?

P.S: per quanto riguarda la tua proposta, penso sarebbe meglio svilupparla in un articolo, potrebbero presto esserci delle novità in proposito, grazie dello spunto.
 

Discussioni simili