Encodage des mails avec PHP
Résolu
heliconius
Messages postés
539
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
A voir également:
- Encodage des mails avec PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Comment sauvegarder des mails - Guide
- Supprimer tous les mails d'un expediteur gmail - Guide
- Mail avec accusé de réception gmail - Guide
4 réponses
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.
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 !
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/
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.