Encodage des mails avec PHP
Résolu/Fermé
heliconius
Messages postés
539
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
23 juin 2023
-
24 nov. 2017 à 00:00
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 - 28 nov. 2017 à 23:34
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 - 28 nov. 2017 à 23:34
A voir également:
- Encodage des mails avec PHP
- Easy php - Télécharger - Divers Web & Internet
- Gmail mails - Guide
- Supprimer tous les mails d'un expediteur gmail - Guide
- Yahoo mail connexion avec mot de passe - Guide
- Creer un compte instagram avec une autre adresse mail - Guide
4 réponses
jordane45
Messages postés
38288
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2024
4 703
Modifié le 24 nov. 2017 à 08:01
Modifié le 24 nov. 2017 à 08:01
Bonjour
Tu sembles avoir oublié des points devant les = des headers
Cordialement,
Jordane
Tu sembles avoir oublié des points devant les = des headers
Cordialement,
Jordane
heliconius
Messages postés
539
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
23 juin 2023
139
25 nov. 2017 à 18:01
25 nov. 2017 à 18:01
Ah, Merci Jordane !
J'aurais dû m'en doûter. Cette erreur de débutant : s'obstiner à chercher l'erreur ! Relire 100 fois le code, passer 100 fois sur la même erreur et ne pas la voir. J'essaye pourtant d'écrire mon code avec rigeur (les signes = bien alignés) pour que les erreurs sautent aux yeux, mais bon... J'aurais dû faire comme d'habitude : faire un break pendant une heure, aller boire une café et revenir lire le code à tête reposée pour que cette erreur du point de concaténation oublié saute aux yeux. Car c'était ça l'erreur.
Tu as raison : les deux versions (ANSI et UTF-8) dans le même message ne fonctionnent pas. L'idée m'était venue en voyant des messages "multipart/mixed" avec texte et HTML ou avec texte et PJ (codée en base64), les contenus différents étant séparés par un "boundary".
Le problème a été réglé de la façon suivante :
Pour l'instant ça va car c'est sur un site accessible à la famille et les messages sont destinés à des personnes que je connais. Ils utilisent tous Windows. Mais cette solution du charset="Windows 1252" donne un message parfaitement lisible sans altération aussi bien avec un client mail ANSI que UTF-8, ces clients étant sous Windows. Mais il faudra que je teste le résultat avec un client mail Linux et Mac OS X pour voir si le résultat est toujours correct. Je continuerai à chercher plus tard. Mais pour l'heure et ce que j'ai à faire, c'est réglé.
En tout cas merci, ça m'a débloqué le tout.
NB pour legameur6810: Merci. Mais je n'ai aucun problème avec les entités HTML quand je construis des pages HTML avec ou sans PHP. Là il s'agissait de mail, pas de page web. Mais merci quand même.
J'aurais dû m'en doûter. Cette erreur de débutant : s'obstiner à chercher l'erreur ! Relire 100 fois le code, passer 100 fois sur la même erreur et ne pas la voir. J'essaye pourtant d'écrire mon code avec rigeur (les signes = bien alignés) pour que les erreurs sautent aux yeux, mais bon... J'aurais dû faire comme d'habitude : faire un break pendant une heure, aller boire une café et revenir lire le code à tête reposée pour que cette erreur du point de concaténation oublié saute aux yeux. Car c'était ça l'erreur.
Tu as raison : les deux versions (ANSI et UTF-8) dans le même message ne fonctionnent pas. L'idée m'était venue en voyant des messages "multipart/mixed" avec texte et HTML ou avec texte et PJ (codée en base64), les contenus différents étant séparés par un "boundary".
Le problème a été réglé de la façon suivante :
<?php $chars = "Windows-1252"; $to = "pierre@mydomain.fr"; $subject = "Test codage"; $msg = "Sans façon, à 20,00 € c'était pas cher."; // accents, cédille, etc. $headers = "From: Tests <codage@mydomain.fr>\r\n" . "MIME-Version: 1.0\r\n" . "Content-Type: text/plain; charset=\"$chars\"\r\n" . "Content-Transfer-Encoding: 8bit\r\n"; $pied = "\n\n---\nhttp://www.mydomain.fr"; // signature du mail mail($to, "$subject $chars", $msg.$pied, $headers); ?>
Pour l'instant ça va car c'est sur un site accessible à la famille et les messages sont destinés à des personnes que je connais. Ils utilisent tous Windows. Mais cette solution du charset="Windows 1252" donne un message parfaitement lisible sans altération aussi bien avec un client mail ANSI que UTF-8, ces clients étant sous Windows. Mais il faudra que je teste le résultat avec un client mail Linux et Mac OS X pour voir si le résultat est toujours correct. Je continuerai à chercher plus tard. Mais pour l'heure et ce que j'ai à faire, c'est réglé.
En tout cas merci, ça m'a débloqué le tout.
NB pour legameur6810: Merci. Mais je n'ai aucun problème avec les entités HTML quand je construis des pages HTML avec ou sans PHP. Là il s'agissait de mail, pas de page web. Mais merci quand même.
legameur6810
Messages postés
45
Date d'inscription
mardi 21 novembre 2017
Statut
Membre
Dernière intervention
14 avril 2018
25 nov. 2017 à 18:15
25 nov. 2017 à 18:15
Salut j'ai un ordinateur utilisant Mac OS.
heliconius
Messages postés
539
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
23 juin 2023
139
>
legameur6810
Messages postés
45
Date d'inscription
mardi 21 novembre 2017
Statut
Membre
Dernière intervention
14 avril 2018
26 nov. 2017 à 01:00
26 nov. 2017 à 01:00
Ok legameur6810. Peux-tu tester le dernier script avec $chars="Windows-1252"; et me dire si le message "Sans façon, à 20,00 € c'était pas cher." est lu correctement par un client mail Mac OS ? (accents, cédille et €). Merci beaucoup
heliconius
Messages postés
539
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
23 juin 2023
139
28 nov. 2017 à 23:34
28 nov. 2017 à 23:34
J'aurais bien aimé avoir le résultat sur un ordinateur client Mac OS. Mais j'attends toujours la réponse. Comme j'ai trouvé une solution qui, pour l'instant me satisfait, je considère le fil comme clos et résolu.
Merci Jordane !
Merci Jordane !
jordane45
Messages postés
38288
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2024
4 703
28 nov. 2017 à 23:34
28 nov. 2017 à 23:34
bonne soirée.
legameur6810
Messages postés
45
Date d'inscription
mardi 21 novembre 2017
Statut
Membre
Dernière intervention
14 avril 2018
25 nov. 2017 à 16:55
25 nov. 2017 à 16:55
Hey voici les caractère spéciaux en html ;)
https://www.scriptol.fr/creation-site-web/accents-html.php
et voici mon site web : https://html-javascript-css-php.000webhostapp.com/
https://www.scriptol.fr/creation-site-web/accents-html.php
et voici mon site web : https://html-javascript-css-php.000webhostapp.com/
24 nov. 2017 à 08:31
https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8
Sachant qu'à ma connaissance tu ne peux pas envoyer avec deux encodages dans le même mail.
De plus, les fonctions utf8 encode et decode ne sont pas utiles si les données sont correctement formatées au départ.