Encodage Email

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Encodage Email

Re: Encodage Email

par mars77 » 22 nov. 2011, 10:23

Hello,

J'ai essayé de rajouter un " utf8_decode() mais cela me donnait des ??? à la place des lettres avec accents.

J'ai trouvé une autre solution. Le faire en HTML. C'est compatible avec outlook, hotmail et iphone.
<?php header( 'content-type: text/html; charset=utf-8' );
$actif = $_POST['actif'];
$nom =  $_POST['nom'];
$prenom = $_POST['prenom'];
$adresse = $_POST['adresse'];
$npa = $_POST['npa'];
$localite= $_POST['localite'];
$pays = $_POST['pays'];
$tel = $_POST['tel'];
$nat = $_POST['nat'];
$ne = $_POST['ne'];
$fax = $_POST['fax'];
$email = $_POST['email'];
$brevet = $_POST['brevet'];
$numero = $_POST['numero'];
$profes = $_POST['profes'];
$type = $_POST['type'];


     // Plusieurs destinataires
     $to  = '[email protected]' ; // notez la virgule

     // Sujet
     $subject = " Inscription d'un nouveau membre du club";

     // message
     $message = '
     <html>
      <head>
       <title>Calendrier des anniversaires pour Août</title>
      </head>
      <body>
       <p>Les coordonnées du nouveau membre.</p>
       <table align="left">
	   <tr align="left"><th width="100">Membre:</th><td>'.$actif.' </td></tr>
        <tr align="left"><th >Nom:</th><td>'.$nom.' </td></tr>
        <tr align="left"><th >Prénom:</th><td>'.$prenom.'</td></tr>
		<tr align="left"><th >Adresse:</th><td>'.$adresse.'</td></tr>
		<tr align="left"><th >NPA:</th><td>'.$npa.'</td></tr>
		<tr align="left"><th >Ville:</th><td>'.$localite.'</td></tr>
		<tr align="left"><th >Pays:</th><td>'.$pays.'</td></tr>
		<tr align="left"><th >Téléphone:</th><td>'.$tel.'</td></tr>
		<tr align="left"><th >Portable:</th><td>'.$nat.'</td></tr>
		<tr align="left"><th >Date de naissance:</th><td>'.$ne.'</td></tr>
		<tr align="left"><th >Fax:</th><td>'.$fax.'</td></tr>
		<tr align="left"><th >E-mail:</th><td>'.$email.'</td></tr>
		<tr align="left"><th >Date Brevet:</th><td>'.$brevet.'</td></tr>
		<tr align="left"><th >Numéro du Brevet:</th><td>'.$numero.'</td></tr>
		<tr align="left"><th >Profession:</th><td>'.$profes.'</td></tr>
		<tr align="left"><th >Type:</th><td>'.$type.'</td></tr>
		
       
       </table>
      </body>
     </html>
     ';

     // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
     $headers  = 'MIME-Version: 1.0' . "\r\n";
     $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

     // En-têtes additionnels
    
     $headers .= 'From:'. $email.'' . "\r\n";

     // Envoi
     mail($to, $subject, $message, $headers);
	 header("location:confirmation.php");
?>
Maintenant quand je regarde mon e-mail avec n'importe quel programme il n'y a plus de problème. Merci encore pour votre aide.

Re: Encodage Email

par dix2 » 21 nov. 2011, 01:56

est-ce que tu peux essayer en rajoutant un utf8_decode comme ci-dessous pour voir ce que ça donne :

mail("[email protected]",
"Inscription d'un nouveau membre du club",utf8_decode("

Les données du nouveau membre :

Membre: $actif

Nom : $nom

Prénom: $prenom

Adresse : $adresse

NPA : $npa

Localité : $localite

Pays : $pays

Téléphone: $tel

Natel : $nat

Date de naissance : $ne

Fax : $fax

E-mail: $email

Année Brevet: $brevet

Numero FSVL : $numero

Profession : $profes

Type : $type

"),"From: $expediteur\r\nReply-To: $expediteur");

Re: Encodage Email

par mars77 » 20 nov. 2011, 21:54

Merci pour ton aide. Cela fonctionne tip top pour les données envoyées via le formulaire mais pour les données qui sont avant Sprénom ont toujours de caractère bizarre.

Le mail reçu:
Les données du nouveau membre :

Membre: Actif

Nom : ààààà

Prénom: ààààà

Adresse : ààà

NPA : àààà

Localité : àà

Pays : ààà

Téléphone: ààà

Natel : ààà

Date de naissance : ààà

Fax : àààà

E-mail: ààà

Année Brevet: ààà

Numero FSVL : ààà

Profession : ààààà

Type : solo
mon code :
<?php header( 'content-type: text/html; charset=ISO-8859-1' );
$actif = $_POST['actif'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$adresse = $_POST['adresse'];
$npa = $_POST['npa'];
$localite= $_POST['localite'];
$pays = $_POST['pays'];
$tel = $_POST['tel'];
$nat = $_POST['nat'];
$ne = $_POST['ne'];
$fax = $_POST['fax'];
$email = $_POST['email'];
$brevet = $_POST['brevet'];
$numero = $_POST['numero'];
$profes = $_POST['profes'];
$type = $_POST['type'];


mail("[email protected]",
"Inscription d'un nouveau membre du club","

Les données du nouveau membre :

Membre: $actif

Nom : $nom

Prénom: $prenom

Adresse : $adresse 

NPA : $npa

Localité : $localite

Pays : $pays

Téléphone: $tel

Natel : $nat

Date de naissance : $ne

Fax : $fax

E-mail: $email

Année Brevet: $brevet

Numero FSVL : $numero

Profession : $profes

Type : $type

","From: $expediteur\r\nReply-To: $expediteur");
header("location:confirmation.php");

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Dents du midi Vol Libre</title>
</head>

<body>
</body>
</html>
Est ce que j ai un problème aussi avec ma page ?

Re: Encodage Email

par dix2 » 20 nov. 2011, 20:48

salut mars77,

y a 2 solutions :

1) soit tu mets un utf8_decode devant chaque $_POST :
$actif = utf8_decode($_POST['actif']);
$nom = utf8_decode($_POST['nom']);
$prenom = utf8_decode($_POST['prenom']);
...

2) soit tu remplaces le jeu de caractères utf-8 par ISO-8859-1
ce qui donne comme 1ère ligne de ton code :
header( 'content-type: text/html; charset=ISO-8859-1' );
et il faut également spécifier ce jeu de caratères pour le formulaire associé :
<form method="post" accept-charset="ISO-8859-1" ...

bonne soirée,
dix2

Encodage Email

par mars77 » 20 nov. 2011, 19:45

Bonjour à tous,

J'ai un petit soucis avec l'encodage de mes mails envoyé via un formulaire. A chaque fois que l'on écrit avec des accents il y a des caractère spéciaux quand je l'ouvre dans outlook.
mon code:
<?php header( 'content-type: text/html; charset=utf-8' );
$actif = $_POST['actif'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$adresse = $_POST['adresse'];
$npa = $_POST['npa'];
$localite= $_POST['localite'];
$pays = $_POST['pays'];
$tel = $_POST['tel'];
$nat = $_POST['nat'];
$ne = $_POST['ne'];
$fax = $_POST['fax'];
$email = $_POST['email'];
$brevet = $_POST['brevet'];
$numero = $_POST['numero'];
$profes = $_POST['profes'];
$type = $_POST['type'];


mail("[email protected]",
"Inscription d'un nouveau membre du club","

Les données du nouveau membre :

Membre: $actif

Nom : $nom

Prénom: $prenom

Adresse : $adresse 

NPA : $npa

Localité : $localite

Pays : $pays

Téléphone: $tel

Natel : $nat

Date de naissance : $ne

Fax : $fax

E-mail: $email

Année Brevet: $brevet

Numero FSVL : $numero

Profession : $profes

Type : $type

","From: $expediteur\r\nReply-To: $expediteur");
header("location:confirmation.php");

?>
Résultat:
Les données du nouveau membre :

Membre: Actif

Nom : ééé

Prénom: éééé

Adresse : éééé

NPA : éééé

Localité : ééé

Pays : éééé

Téléphone: éééé

Natel : éééé

Date de naissance : éééé

Fax : éééé

E-mail: éééé

Année Brevet: éééé

Numero FSVL : éééé

Profession : ééé

Type : solo
Est ce que c'est un problème d'encodage dans ma page ou dans mon code mail ?

Merci pour votre aide