Php Mail caractères bizarres

Résolu/Fermé
Herve_be Messages postés 1015 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 10 mars 2024 - Modifié le 25 mars 2020 à 10:58
Herve_be Messages postés 1015 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 10 mars 2024 - 25 mars 2020 à 13:53
Bonjour,
J'envoie des mails via php, j'appelle le script php avec des paramètres
par exemple je veux envoyer https://...mail.php?S=Hervé
j'encode l'URL comme ceci https://...mail.php?S=Herv%E9
le code de mail.php
<?php
$S=$_GET["S"]; // $_GET décode l'URL
$message = "bla bla;
$Mail = "destinataire@gmail.com";
$headers = "MIME-Version: 1.0\r\nContent-type:text/plain;charset=iso-8859-1\r\nFrom: expéditeur\r\n";
if (mail($Mail, $S, $message, $headers))
...

Je reçois bien le mail mais le sujet $S devient Herv�
Même problème avec le contenu du message.

J'ai essayé comme ceci
if (mail($Mail, utf8_decode($S), utf8_decode($message), $headers))


cette fois le sujet est Herv?

Comment encoder le sujet et le message pour qu'ils soient reçus correctement ?
Merci d'avance pour votre aide
A voir également:

3 réponses

Herve_be Messages postés 1015 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 10 mars 2024 8
Modifié le 25 mars 2020 à 12:12
J'ai trouvé en partie
$headers = "MIME-Version: 1.0\r\nContent-type:text/html;charset=utf-8\r\nFrom: expéditeur\r\n";
if (mail($Mail, $Subject, $message, $headers))
les caractères spéciaux par exemple ($%&#) passent sans problème
mais les éè sont remplacés par un point d'interrogation blanc dans un losange noir (je ne parviens pas à le copier ici).
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
25 mars 2020 à 12:17
Bonjour,

Changer le charset du header pour le mettre en utf8 serait déjà une bonne piste.
Je t'invite également à suivre ceci :
https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8

.
0
Herve_be Messages postés 1015 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 10 mars 2024 8
25 mars 2020 à 13:53
J'avais effectivement mis UTF-8 dans le header, voir mon second message.
Mais j'avais toujours des caractères bizarres, et avec utf8_encode aussi mais pas les mêmes.
J'ai compris.
Dans le mail j'ai du texte fixe donc en UTF-8 : si je les encode à nouveau ça fait des nœuds.
Par contre le php reçoit des paramètres qui ne sont pas en UTF-8.
La solution consiste donc à utf8_encodeR les paramètres et pas tout le message.
Ça fonctionne !
0