Page 1 sur 2
[RESOLU] Problème avec la reception de mail
Posté : 21 déc. 2005, 11:38
par Tomcat92fr
Bonjour à tous j'ai un petit problème dans la réception des mails.
Le formulaire est en flash et envoi par l'intermédiaire d'un POST les informations.
Cependant je dois avoir un problème dans mon fichier PHP car les accents et les apostrophes s'affichent en code.
Exemple de reception
Sujet: test de fonctionnement à é l\'accent ?
Message: test de fonctionnement à é l\'accent ? test de fonctionnement à é l\'accent ? é \" \' (@ )è Numéro de téléphone: 0123456789 Numéro de GSM: 0623456789
Ci dessous mon fichier PHP
<?php
#
$MailTo="[email protected]";
#
# Formating Date ############################################################
$nowDay=date("d.m.Y");
$nowClock=date("H:i:s",time()+3600*(1+date("I")));
#
# Formating Body content ######################################################
#
$FormContent="
Les informations suivantes ont été recues le $nowDay à $nowClock:
Prénom: $firstname
Nom: $lastname
E-mail: $MailFrom
Sujet: $Subject
Message: $Body
Numéro de téléphone: $Phone
Numéro de GSM: $Gsm
".urlencode(utf8_encode($FormContent));
#
#
mail($MailTo, "$Subject (de $firstname $lastname)", $FormContent, "From: $MailFrom");
#
#
# Autoresponder #############################################################
#
#
$filename = "answer.txt";
$fd = fopen( $filename, "r" );
$contents = fread( $fd, filesize( $filename ) );
fclose( $fd );
mail( "$MailFrom", "Merci de votre envoi - monsite.com", "$contents\n\n",
"From:[email protected]\n" );
#
#
# Flashsignal Variable ######################################################
#
$signal=1;
echo "signal=$signal";
#
###############################################################################
?>
Je pense que le problème viens du codage "
".urlencode(utf8_encode($FormContent));"
Merci de vos réponses
Posté : 21 déc. 2005, 11:39
par Min's
Tu ne recevrais pas avec outlook des fois??
Posté : 21 déc. 2005, 11:41
par Tomcat92fr
Oui effectivement je recois ceci sur outlook
Pourquoi ??
Posté : 21 déc. 2005, 11:43
par Min's
J'ai déjà remarqué qu'outlook ne supporte pas de recevoir des mails en UTF8...

donc essaie plutot de laisser l'encodage de base (iso 8819-15 non? c'est pas ça?? )
Pourquoi forces-tu l'utf-8 en fait? tu as une idée en tête?
Posté : 21 déc. 2005, 11:47
par Tomcat92fr
C'est ce que je pense aussi mais dans le script de base il était conseillé de mettre UTF8_encode
tu me conseilles de mettre .urlencode(iso 8819-15_encode($FormContent))
ou de retire le codage ???
Posté : 21 déc. 2005, 11:50
par Min's
Je te dirais de retirer le codage (je n'ai pas personnellement rencontré de problème avec des mails non encodés) et de retester comme ça...
Tu peux toujours demander à tes récepteur de te prévenir (via la page qui envoie) que s'ils ne recoivent qu'un mail illisible qu'ils te mailent...
Posté : 21 déc. 2005, 12:06
par Tomcat92fr
J'ai essayé différentes choses mais le mail n'est pas envoyé
$FormContent="
Les informations suivantes ont été recues le $nowDay à $nowClock:/n
Prénom: $firstname/n
Nom: $lastname/n
E-mail: $MailFrom/n
Sujet: $Subject/n
Message: $Body/n
Numéro de téléphone: $Phone/n
Numéro de GSM: $Gsm/n
"[color=darkred].urlencode($FormContent)[/color];
C'est la partie en rouge qui pose problème je ne sais pas quoi ecrire à la place
J'ai essayé
.urlencode(iso 8819-15_encode($FormContent));
Ca ne fonctionne pas
J'ai essayé sans rien et ca ne fonctionne pas non plus

Posté : 21 déc. 2005, 12:14
par Min's
<?php
#
$MailTo="[email protected]";
#
# Formating Date ############################################################
$nowDay=date("d.m.Y");
$nowClock=date("H:i:s",time()+3600*(1+date("I")));
#
# Formating Body content ######################################################
#
$FormContent="
Les informations suivantes ont été recues le $nowDay à $nowClock: \n
Prénom: $firstname \n
Nom: $lastname \n
E-mail: $MailFrom \n
Sujet: $Subject \n
Message: $Body \n
Numéro de téléphone: $Phone \n
Numéro de GSM: $Gsm
";
#
#
mail($MailTo, "$Subject (de $firstname $lastname)", $FormContent, "From: $MailFrom");
#
#
# Autoresponder #############################################################
#
#
$filename = "answer.txt";
$fd = fopen( $filename, "r" );
$contents = fread( $fd, filesize( $filename ) );
fclose( $fd );
mail( "$MailFrom", "Merci de votre envoi - monsite.com", "$contents\n\n",
"From:[email protected]\n" );
#
#
# Flashsignal Variable ######################################################
#
$signal=1;
echo "signal=$signal";
#
###############################################################################
?>
Ca devrait te l'envoyer normalement... non?
Posté : 21 déc. 2005, 12:26
par Tomcat92fr
voila ce que je recois
test d\'accent é è à \' \" ? test d\'accent é è à \' \" ? test d\'accent é è à \' \" ?
et si je passe par
$Subject = htmlentities($_POST["Subject"], ENT_QUOTES);
Est ce que ca peut le faire ??
Posté : 21 déc. 2005, 12:31
par Min's
Essaye, je ne peux dire que ça...

sinon je donne la langue au chat...

Posté : 21 déc. 2005, 12:33
par Tomcat92fr
merci quand meme
Si quelqu'un dautre à une idée lumineuse merci de me le faire savoir.
Si de mon coté je trouve la réponse je vous mettrais les sources
Posté : 21 déc. 2005, 12:39
par Min's
Essaye quand même un peu
<?php
$to = '[email protected]';
$subject = 'le sujet';
$message = 'Bonjour ! Ceci est un test avec des accents éèàùïòóúäê';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
en changeant juste le to : pour voir ce que ca donne?
Posté : 21 déc. 2005, 12:53
par Tomcat92fr
Ca fonctionne pour le message mais pas pour le sujet
Donc ???
Qu'en penses tu ?
Posté : 21 déc. 2005, 12:56
par Min's
Donc le message passe bien mais si tu rajoutes des accents dans le sujet ils ne passent pas??
Bu...
Et si tu utilises une classe totue préécrite avec objets et tout et tout... je sais c'est lourd mais ptet que ca t'aiderait?
On va encore essayer ça avant :
<?php
// Plusieurs destinataires
$to = '[email protected]' . ', '; // notez la virgule
$to .= '[email protected]';
// Sujet
$subject = 'Calendrier des anniversaires pour Août';
// message
$message = '
<html>
<head>
<title>Calendrier des anniversaires pour Août</title>
</head>
<body>
<p>Voici les anniversaires à venir au mois d\'Août !</p>
<table>
<tr>
<th>Personne</th><th>Jour</th><th>Mois</th><th>Année</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</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=iso-8859-1' . "\r\n";
// En-têtes additionnels
$headers .= 'To: Mary <[email protected]>, Kelly <[email protected]>' . "\r\n";
$headers .= 'From: Anniversaire <[email protected]>' . "\r\n";
$headers .= 'Cc: [email protected]' . "\r\n";
$headers .= 'Bcc: [email protected]' . "\r\n";
// Envoi
mail($to, $subject, $message, $headers);
?>
Posté : 21 déc. 2005, 13:12
par Tomcat92fr
voila le résultat
Calendrier des anniversaires pour AoXt
Voici les anniversaires à venir au mois d'Août !
Personne Jour Mois Année
Joe 3rd August 1970
Sally 17th August 1973
le tableau est aligné