Bonjour à tous,

Je suis nouveau sur le site et ne pas certain de poster là où il faut. De plus, le sujet, sous différents angles, a déjà été traité. Je n'ai pas trouvé la solution.

Le fichier process.php que j'ai créé pour l'envoi d'un formulaire fonctionne très bien, redirection comprise à un détail près : Je ne parviens pas à faire sortir les accents français dans le corps du message parvenant dans la boite mail. (Ni le sujet d'ailleurs)
Quelqu'un peut-il me dire là où je commets une erreur. Ci-dessous, mon code
<?PHP
$email = $_POST["emailaddress"];

$to = 'monadressemail@mail.fr';
$subject = 'Un besoin spécifique';
$headers = 'From: ' . $_POST['email'] . "\r\n" . 'Reply-To: ' . $_POST['email'];
$headers[]="Content-type: text/plain; charset=UTF-8";
$message = 'Prénom: ' . $_POST['name'] . "\r\n" .
'E-mail: ' . $_POST['email'] . "\r\n" .
'Sujet: ' . $_POST['subject'] . "\r\n" .
'Message: ' . $_POST['message'];
mail($to,$subject,$message,$headers);

mail($user,$usersubject,$usermessage,$userheaders);
header("Location: http://www.monsite.fr");
?>

Je vous remercie par avance
Cordialement
Salut essai avec ça :

$to = 'monadressemail@mail.fr';
$subject = 'Un besoin spécifique';
$from.="MIME-version: 1.0\n";
$from.="Content-type: text/html; charset=UTF-8\n";
$headers = 'From: ' . $_POST['email'] . "\r\n" . 'Reply-To: ' . $_POST['email'];
$headers[]="Content-type: text/plain; charset=UTF-8";
$message = 'Prénom: ' . $_POST['name'] . "\r\n" .
'E-mail: ' . $_POST['email'] . "\r\n" .
'Sujet: ' . $_POST['subject'] . "\r\n" .
'Message: ' . $_POST['message'];
mail($to,$subject,$message,$headers);
Bonjour Tintin75,

Merci pour cette prompte réponse.
Avec ce code les mails ne partent plus du tout, donc aucun moyen de vérifier si ils sont encodés proprement.

En fait ils partent et arrivent très bien avec celui-ci, mais avec un sujet et un corps de message comme montré dans le screenshot.

<?PHP
$email = $_POST["emailaddress"];
$headers .='Content-Type: text/plain; charset="utf-8"'."\r\n "; // ici on envoie le mail au format texte encodé en UTF-8
$headers .='Content-Transfer-Encoding: 8bit'; // ici on précise qu'il y a des caractères accentués

$to = 'monmail@mail.fr';
$subject = 'Un besoin spécifique';
$headers = 'From: ' . $_POST['email'] . "\n" . 'Reply-To: ' . $_POST['email'];

$message = 'Prénom: ' . $_POST['name'] . "\r\n" .
'E-mail: ' . $_POST['email'] . "\r\n" .
'Sujet: ' . $_POST['subject'] . "\r\n" .
'Message: ' . $_POST['message'];
mail($to,$subject,$message,$headers);

mail($user,$usersubject,$usermessage,$userheaders);
header("Location: http://www.monsite.fr");
?>

Cordialement

Dominique upload/61305-Capture.PNG
C'est un problème d'encodage.

<?PHP
$email = $_POST["emailaddress"];
$to = 'monmail@mail.fr';
$subject = 'Un besoin spécifique';
$from.="MIME-version: 1.0\n";
$from.="Content-type: text/html; charset=UTF-8\n";
$message = 'Prénom: ' . $_POST['name'] . "\r\n" .
'E-mail: ' . $_POST['email'] . "\r\n" .
'Sujet: ' . $_POST['subject'] . "\r\n" .
'Message: ' . $_POST['message'];
mail($to,$subject,$message);

mail($user,$usersubject,$usermessage,$userheaders);
?>

Essai avec ce code et regarde si les accents passent. Il faut simplifier au maximum ton code pour voir ou ça bloque.

Regarde : http://www.infowebmaster.fr/tutoriel/creer-page-contact-php

Smiley cligne
Modifié par Tintin75 (21 Feb 2016 - 17:02)
Bonjour,

J'ai tenté le code ci-dessous et les accents sont acceptés. Celà dit, maintenant les retours à la ligne ont disparus...Franchement, quelque chose m'échappe !
<?php
if ($_POST["email"]<>'') {
$ToEmail = 'monmail@mail.fr';
$EmailSubject = 'Site contact form';
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGE_BODY = "Name: ".$_POST["name"]."";
$MESSAGE_BODY .= "Email: ".$_POST["email"]."";
$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"])."";
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");
?>
Your message was sent
<?php
} else {
?>