Salut, a tous.

J'ai regardé un peu partout et j'ai pas trouvé mon bonheur alors je viens voir si personne a le meme problème que moi.

Je vous explique :

J'ai un formulaire qui permet d'envoyer dse mails dans lequel j'ai différents champs mais notamment un input text et un textarea (qui sont le titre et le contenu du mail).

Mon problème c'est que si je met le caractere € dans le titre (donc dans le input) pas de pb il est reçut correctement par le destinataire par contre si je le met dans mon textarea ca marche pas j'ai un ? dans le mail. (je suis sous ie7)

Et ca encore c rien parce que sous ie6 je n'arrive meme plus a recuperer les autres champs du formulaire . . .

J'ai bien essayé de faire gaffe a l'encodage de mes pages (du iso-8859-1) mais je sais pas si c ok. Bon la je vous parle du symbole € mais c la meme chose pour le @ par exemple et tout symbole qui ne soit pas 'basic'.

Bon si vous avez de idées je suis preneur :d

a+
Salut,

Etrange, je n'ai pas ce problème là avec mes propres formulaires de contact. Peut être que celà vient du code qui permet de récupérer les données du formulaire avant de te les envoyer...
Aurais tu les pages de code utilisées htlm et/ou php pour qu'il soit possible de voir si çà ne vient pas de là ?
Alors pour mon formulaire y a rien d'exceptionnel par contre je viens de tilter je stock mes valeurs dans un autre formulaire.

J'explique:

Mon formulaire est dans ma page principal.
Lorsque je le valide j'ouvre un popup et ensuite je redirige le fomulaire vers ce popup et pour avoir un message d'attente (parce que l'envoi peut etre assez long en fonction du nombre de destinataires) je charge une premiere page ou je remet mes valeur dans un fomulaire hidden et je le revalide au bout de 1s sinon on voit jamais la page.

Mais je vais changer ca parce que c'est une vielle méthode donc je vais modifier et je vous tiens au courant

a+
bon alors j'ai un peu avancé sur mon pb et ca ne vient pas du formulaire a priori puisque lorsque j'affiche directement la valeur récupérée c ok.

Au passage j'ai supprimé les formulaires intermediaires inutiles.

J'ai bien mon € et mn @.

Par contre quand je l'envoi par mail c pas bon.

J'utilise phpmailer pour ca et je vous mets le code utilisé :

$mail = new phpmailer();
$mail->SetLanguage("fr",$_SESSION["session_inc_path"]."phpmailer/");
$mail->IsSMTP(); 
$mail->Host = __smtp_server; 
$mail->SMTPAuth = false;    
$mail->From     = $_SESSION["session_mail"]["contact"];
$mail->FromName = "****";
$mail->AddReplyTo($_SESSION["session_mail"]["contact"],"****");
$mail->WordWrap = __WordWrap;
$log = "";

// Insertion des pieces jointes
if($_SESSION["session_mail"]["pj1"]<>"")
	$mail->AddAttachment($reptmp."/pj1",$_SESSION["session_mail"]["pj1"]);
if($_SESSION["session_mail"]["pj2"]<>"")
	$mail->AddAttachment($reptmp."/pj2",$_SESSION["session_mail"]["pj2"]);
if($_SESSION["session_mail"]["pj3"]<>"")
	$mail->AddAttachment($reptmp."/pj3",$_SESSION["session_mail"]["pj3"]);

$mail = format_mail(false,$mail,$_SESSION["session_mail"]["body"],$_SESSION["session_mail"]["objet"]);

// Récupération de la liste des adresses mail
while($row=mysql_fetch_array($res))
{
	$mail->to[0][0]=$row['email'];
	$mail->to[0][1]=$row['prenom'].' '.$row['nom'];
	if($mail->Send())
	{
		db_query("INSERT INTO publipostages_destinataires (id_publi,id_dest,envoi) VALUES (".$idpubli.",".$row['id'].",'mail');");
		// On supprime une fois l'envoi effectué de la table tmp
		db_query("DELETE from liste_stagiaires_temp_" . $_SESSION["session_mail"]["numerotable"] . " WHERE id='".$row['id']."';");
	}
	else
		$log .= str_replace("'","\\'",$row['prenom'])." ".str_replace("'","\\'",$row['nom'])." (".str_replace("'","\\'",$row['email']).").\\n";
}
// On fait un envoie supplémentaire à l'adresse de retour pour avoir une copie du mail envoyé en modifiant les adresses d'emetteur
$mail->From     = $_SESSION["session_mail"]["contact"];
$mail->FromName = "****";
$mail = format_mail(false,$mail,$_SESSION["session_mail"]["body"],"Copie envoi mailing du ".date("d/m/Y H:i:s"). " : ".$_SESSION["session_mail"]["objet"]);
$mail->to[0][0]=$_SESSION["session_mail"]["contact"];
$mail->to[0][1]=$_SESSION["session_mail"]["contact"];
$mail->Send();
unset($mail);


Voila bon je sais plus du coup si je suis dans le bon forum mais bon tant qu'a y tre :d

Je suis preneur pour toute aide

a+
Modifié par netounet (31 Mar 2007 - 15:59)
Personne qui aurait une solution ?

J'ai essayé d'envoyer le mail dn forçant phpmailer et iso-8859-15 mais a la place du ? j'ai un carré (mais bon vu que ma page est codé en iso-8859-1 je pense que c normal.

Petite précision : mon client de messagerie est outlook express 6
Il y a un encodage de spécifié dans les en-têtes du mail envoyé ? (Note : Thunderbird permet de les consulter, sinon en affichant la source du mail ça devrait être visible.)