SUBJ_ILLEGAL_CHARS => Quoted Printable Encode
Fermé
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
-
9 nov. 2020 à 17:30
Herve_be Messages postés 999 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 5 juin 2023 - 11 nov. 2020 à 17:12
Herve_be Messages postés 999 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 5 juin 2023 - 11 nov. 2020 à 17:12
21 réponses
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
9 nov. 2020 à 21:14
9 nov. 2020 à 21:14
bonjour, j'ai l'impression que le QP n'est pas la bonne technique pour attaquer ce soucis.
d'où proviennent les données que tu utilises comme objet du mail?
d'où proviennent les données que tu utilises comme objet du mail?
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
10 nov. 2020 à 09:19
10 nov. 2020 à 09:19
Bonjour,
L'objet du mail est défini dans le script php qui est lui-même enregistré en UTF-8.
L'objet du mail est défini dans le script php qui est lui-même enregistré en UTF-8.
$Subject = "Code d'accès Hervé Reef Tools";
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
10 nov. 2020 à 10:16
10 nov. 2020 à 10:16
l'objet est toujours le même, et tu as une erreur de temps en temps?
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
Modifié le 10 nov. 2020 à 10:27
Modifié le 10 nov. 2020 à 10:27
En effet,
j'utilise php mail() qui la plupart du temps retourne True
de temps en temps il retourne False mais error_get_last() done NULL ce qui signifie qu’il n’y a pas d’erreur dans php
j'ai donc demandé l'error log de SMTP à mon hébergeur
j'y ai trouvé quelques erreurs "Message rejected due to content policy"
j'ai donc demandé des explications à mon hébergeur qui 'a répondu ceci
SUBJ_ILLEGAL_CHARS:
Objet: contient trop de caractères non autorisés bruts
L'en-tête Subject contient 8 bits et d'autres caractères illégaux qui doivent être codés https://en.wikipedia.org/wiki/MIME, comme décrit dans https://tools.ietf.org/html/rfc2045
Selon les spécifications RFC, tous les caractères des en-têtes de courrier électronique qui ne sont pas dans les plages ascii normales doivent être codés QP.
J'ai donc essayé de coder le sujet QP mais le mail reçu n'est plus correct !
j'utilise php mail() qui la plupart du temps retourne True
de temps en temps il retourne False mais error_get_last() done NULL ce qui signifie qu’il n’y a pas d’erreur dans php
j'ai donc demandé l'error log de SMTP à mon hébergeur
j'y ai trouvé quelques erreurs "Message rejected due to content policy"
j'ai donc demandé des explications à mon hébergeur qui 'a répondu ceci
SUBJ_ILLEGAL_CHARS:
Objet: contient trop de caractères non autorisés bruts
L'en-tête Subject contient 8 bits et d'autres caractères illégaux qui doivent être codés https://en.wikipedia.org/wiki/MIME, comme décrit dans https://tools.ietf.org/html/rfc2045
Selon les spécifications RFC, tous les caractères des en-têtes de courrier électronique qui ne sont pas dans les plages ascii normales doivent être codés QP.
J'ai donc essayé de coder le sujet QP mais le mail reçu n'est plus correct !
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
10 nov. 2020 à 11:29
10 nov. 2020 à 11:29
tu as écrit rencontrer parfois une erreur SUBJ_ILLEGAL_CHARS.
si je comprends bien, cette erreur est en fait dans le log SMTP. cette erreur viendrait sans doute du serveur mail destinataire. est-ce le cas?
peux-tu montrer des extraits de ce log SMTP?
je pense que les spécifications que tu mentionnes concernent le corps du message, pas l'objet.
si je comprends bien, cette erreur est en fait dans le log SMTP. cette erreur viendrait sans doute du serveur mail destinataire. est-ce le cas?
peux-tu montrer des extraits de ce log SMTP?
je pense que les spécifications que tu mentionnes concernent le corps du message, pas l'objet.
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
10 nov. 2020 à 11:56
10 nov. 2020 à 11:56
je pense que ton encodage n'est pas correct.
comme explique dans le rfc 2047, il faut spécifier le codage, par exemple ainsi:
je ne sais pas quel codage correspond au code QP.
tu peux, comme moi, facilement faire cela à la main, sans utiliser de fonction php, puisque ton texte est toujours le même.
comme explique dans le rfc 2047, il faut spécifier le codage, par exemple ainsi:
"=?iso-8859-1?q?Code d'acc=E8s Herv=E9 Reef Tools?="
je ne sais pas quel codage correspond au code QP.
tu peux, comme moi, facilement faire cela à la main, sans utiliser de fonction php, puisque ton texte est toujours le même.
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
Modifié le 10 nov. 2020 à 12:06
Modifié le 10 nov. 2020 à 12:06
Pour encoder QP j'ai utilisé en php quoted_printable_encode ( string $str ) : string
Retourne une chaîne quoted printable créée suivant les règles de » RFC2045, section 6.7.
ce qui donne "Code d'acc=C3=A8s Herv=C3=A9 Reef Tools"
Le problème est qu'il n'est pas décodé dans le mail reçu.
Retourne une chaîne quoted printable créée suivant les règles de » RFC2045, section 6.7.
ce qui donne "Code d'acc=C3=A8s Herv=C3=A9 Reef Tools"
Le problème est qu'il n'est pas décodé dans le mail reçu.
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
>
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
10 nov. 2020 à 12:25
10 nov. 2020 à 12:25
as-tu testé la suggestion?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
10 nov. 2020 à 11:59
10 nov. 2020 à 11:59
Ce n'est pas tout à fait ça.
Dans le log SMTP je trouve "Message rejected due to content policy", par exemple (j'ai remplacé les adresse mail par MailFrom et MailTo)
Fri 23 Oct 2020 14:04:02.323000 +0000 mailout1 debug smtpd[63249] [9a53eb65-1538-11eb-bb66-d0431ea8a29d] [EOD] [script] REJECT: 193.202.110.23 [rudyv.be] <MailFrom> to <MailTo@yahoo.fr> (Message rejected due to content policy (9a53eb65-1538-11eb-bb66-d0431ea8a29d) YSA)
j'ai donc demandé des explications à mon hébergeur qui 'a répondu (voir mon message précédent)
Dans le log SMTP je trouve "Message rejected due to content policy", par exemple (j'ai remplacé les adresse mail par MailFrom et MailTo)
Fri 23 Oct 2020 14:04:02.323000 +0000 mailout1 debug smtpd[63249] [9a53eb65-1538-11eb-bb66-d0431ea8a29d] [EOD] [script] REJECT: 193.202.110.23 [rudyv.be] <MailFrom> to <MailTo@yahoo.fr> (Message rejected due to content policy (9a53eb65-1538-11eb-bb66-d0431ea8a29d) YSA)
j'ai donc demandé des explications à mon hébergeur qui 'a répondu (voir mon message précédent)
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
10 nov. 2020 à 12:34
10 nov. 2020 à 12:34
et donc le texte "SUBJ_ILLEGAL_CHARS" n'est présent nulle part?
ceci dit, je pense que la conclusion est correcte, et qu'il est préférable d'encoder l'objet, pour éviter que le mail soit parfois rejeté comme spam.
ceci dit, je pense que la conclusion est correcte, et qu'il est préférable d'encoder l'objet, pour éviter que le mail soit parfois rejeté comme spam.
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
10 nov. 2020 à 16:21
10 nov. 2020 à 16:21
Je ne sais pas où le technicien de mon hébergeur qui a examiné le problème a trouvé SUBJ_ILLEGAL_CHARS
Encoder comment ?
Encoder comment ?
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
10 nov. 2020 à 16:36
10 nov. 2020 à 16:36
comment j'ai expliqué à 11h56.
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
10 nov. 2020 à 16:55
10 nov. 2020 à 16:55
Ca c'est le résultat de l'encodage.
Je voudrais savoir comment on fait.
Pourquoi iso-8859-1 (je suis en UTF-8) ?
Que signifient =? et ?= ?
Le mail reçu va-t-il être lisible dans tous les cas ?
Pourquoi la fonction dédiée quoted_printable_encode ne convient-elle pas ?
Je voudrais savoir comment on fait.
Pourquoi iso-8859-1 (je suis en UTF-8) ?
Que signifient =? et ?= ?
Le mail reçu va-t-il être lisible dans tous les cas ?
Pourquoi la fonction dédiée quoted_printable_encode ne convient-elle pas ?
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
10 nov. 2020 à 17:47
10 nov. 2020 à 17:47
tu as testé, cela fonctionne-t-il?
je pense que le mail reçu sera lisible si il est traité par des logiciels qui sont conformes aux standards.
comment on fait:
d'abord =?iso-8859-1?q?
puis le texte, dans lequel tu remplaces les caractères spéciaux par "=XX", XX venant du codage iso-8859-1
ensuite ?=
tu peux sans doute utiliser d'autres codages que iso-8859-1.
je ne sais pas pourquoi quoted_printable_encode n'a pas bien fonctionné pour toi, mais, de toutes façons, tu avais négligé de mettre =?iso-8859-1?q? au début et ?= à la fin.
je pense que le mail reçu sera lisible si il est traité par des logiciels qui sont conformes aux standards.
comment on fait:
d'abord =?iso-8859-1?q?
puis le texte, dans lequel tu remplaces les caractères spéciaux par "=XX", XX venant du codage iso-8859-1
ensuite ?=
tu peux sans doute utiliser d'autres codages que iso-8859-1.
je ne sais pas pourquoi quoted_printable_encode n'a pas bien fonctionné pour toi, mais, de toutes façons, tu avais négligé de mettre =?iso-8859-1?q? au début et ?= à la fin.
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
Modifié le 10 nov. 2020 à 17:48
Modifié le 10 nov. 2020 à 17:48
Je reçois à l'instant une réponse de l'hébergeur qui me conseille de faire
imap_8bit — Convertit une chaîne à 8 bits en une chaîne encodée en Quoted-Printable
alors que j'utilisais quoted_printable_encode
mais sans
Cette fonction est similaire à imap_8bit(), sauf qu'elle ne requiert pas de module IMAP pour fonctionner.
mail ($To, '=? UTF-8? Q?'. imap_8bit ($Subject). '? =', $Message, $Headers);
imap_8bit — Convertit une chaîne à 8 bits en une chaîne encodée en Quoted-Printable
alors que j'utilisais quoted_printable_encode
mais sans
'=? UTF-8? Q?'. . '? ='dont je ne comprends toujours pas la signification
Cette fonction est similaire à imap_8bit(), sauf qu'elle ne requiert pas de module IMAP pour fonctionner.
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
10 nov. 2020 à 18:02
10 nov. 2020 à 18:02
"la signification", c'est qu'il faut respecter la norme pour être compris.
c'est clairement expliqué dans des rfc, par exemple le 2047:
si tu utilises un encodage différent de l'ASCII, tu dois respecter une syntaxe précise, connue de tous.
et, entr'autres, préciser quel codage tu choisis d'utiliser. sinon, comment le récepteur peut-il deviner comment décoder?
c'est clairement expliqué dans des rfc, par exemple le 2047:
si tu utilises un encodage différent de l'ASCII, tu dois respecter une syntaxe précise, connue de tous.
et, entr'autres, préciser quel codage tu choisis d'utiliser. sinon, comment le récepteur peut-il deviner comment décoder?
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
10 nov. 2020 à 18:00
10 nov. 2020 à 18:00
Que signifient =?iso-8859-1?q? au début et ?= à la fin ?
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
Modifié le 10 nov. 2020 à 18:31
Modifié le 10 nov. 2020 à 18:31
ils annoncent que c'est un encodage non ASCII, indiquent quel codage, et précisent quand cela se termine.
je pense que tu peux aussi utiliser quoted_printable_encode avec =?utf-8?q? au début et ?= à la fin.
je pense que tu peux aussi utiliser quoted_printable_encode avec =?utf-8?q? au début et ?= à la fin.
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
10 nov. 2020 à 18:25
10 nov. 2020 à 18:25
Merci, j'ai trouvé ici https://tools.ietf.org/html/rfc2047
Je pensais que c'était une syntaxe php. un peu comme <?php et ?>
Je vais essayer
Je pensais que c'était une syntaxe php. un peu comme <?php et ?>
Je vais essayer
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
10 nov. 2020 à 18:43
10 nov. 2020 à 18:43
en utf-8, les deux "e" accentués s'encodent C3A8 et C3A9
en iso-8849-1, ils s'encodent E8 et E9
tu feras donc:
ou
en iso-8849-1, ils s'encodent E8 et E9
tu feras donc:
=?utf-8?q?Code d'acc=C3=A8s Herv=C3=A9 Reef Tools?=
ou
=?iso-8859-1?q?Code d'acc=E8s Herv=E9 Reef Tools?=
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
11 nov. 2020 à 10:09
11 nov. 2020 à 10:09
Bonjour,
Je viens d'essayer
Objet du mail reçu :
=? UTF-8? Q?Code d'acc=C3=A8s Herv=C3=A9 Reef Tools? =
Comme me l'avait suggéré mon hébergeur
idem, il ne décode donc pas !
Je viens d'essayer
$Subject = "Code d'accès Hervé Reef Tools"; $Subject = "=? UTF-8? Q?".quoted_printable_encode($Subject)."? =";
Objet du mail reçu :
=? UTF-8? Q?Code d'acc=C3=A8s Herv=C3=A9 Reef Tools? =
Comme me l'avait suggéré mon hébergeur
$Subject2 = '=? UTF-8? Q?'. imap_8bit ($Subject1). '? =';
idem, il ne décode donc pas !
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
11 nov. 2020 à 13:49
11 nov. 2020 à 13:49
as-tu essayé mes suggestions en #6 et #20?
ce serait sympa d'essayer et de donner du feedback.
ce serait sympa d'essayer et de donner du feedback.
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 592
11 nov. 2020 à 10:12
11 nov. 2020 à 10:12
Bonjour,
Avant tout, pourrais tu nous montrer le contenu de ta variable $Headers ?
Quel encodage as tu spécifié dans le mail ?
Avant tout, pourrais tu nous montrer le contenu de ta variable $Headers ?
Quel encodage as tu spécifié dans le mail ?
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
11 nov. 2020 à 10:18
11 nov. 2020 à 10:18
$headers = "MIME-Version: 1.0\r\nContent-type:text/html;charset=utf-8\r\n"; $headers .= "From: MonAdresseMail\r\n"; $headers .= "Date: ".date('r')." \r\n"; $headers .= "Message-Id: <" . md5(uniqid(microtime())) . "@" . gethostname() . ">\r\n";
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
11 nov. 2020 à 13:54
11 nov. 2020 à 13:54
En 20 tu suggères d'essayer
je n'ai pas hardcodé ainsi, j'ai utilisé quoted_printable_encode() qui donne
c'est donc la même chose et n'est pas décodé par mon client mail.
=?utf-8?q?Code d'acc=C3=A8s Herv=C3=A9 Reef Tools?=
je n'ai pas hardcodé ainsi, j'ai utilisé quoted_printable_encode() qui donne
=? UTF-8? Q?Code d'acc=C3=A8s Herv=C3=A9 Reef Tools? =
c'est donc la même chose et n'est pas décodé par mon client mail.
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
11 nov. 2020 à 13:55
11 nov. 2020 à 13:55
pourquoi n'essaies-tu pas? cela t'aidera peut-être à progresser.
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
11 nov. 2020 à 14:07
11 nov. 2020 à 14:07
as-tu testé le #6? si cela fonctionne chez moi et pas chez toi, cela donne des pistes pour analyser et comprendre.
pour progresser, il est parfois utile de tester différentes approches.
pour progresser, il est parfois utile de tester différentes approches.
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
11 nov. 2020 à 14:38
11 nov. 2020 à 14:38
Je viens d'essayer #6
l'objet du mail reçu est correct
Question suivante : que faire si le sujet n'est pas toujours "Code d'accès Hervé Reef Tools" ?
Car en réalité le sujet est
"Code d'accès Hervé Reef Tools ".$AppVer." pour ".$Userid." (".$First." ".$Last.") @ ".$Mail
les paramètres étant transmis lors de l'appel du script php
$Subject = "=?iso-8859-1?q?Code d'acc=E8s Herv=E9 Reef Tools?=";
l'objet du mail reçu est correct

Question suivante : que faire si le sujet n'est pas toujours "Code d'accès Hervé Reef Tools" ?
Car en réalité le sujet est
"Code d'accès Hervé Reef Tools ".$AppVer." pour ".$Userid." (".$First." ".$Last.") @ ".$Mail
les paramètres étant transmis lors de l'appel du script php
$Mail=utf8_encode($_GET["Mail"]); $Userid=utf8_encode($_GET["Userid"]); $First=utf8_encode($_GET["First"]); $Last=utf8_encode($_GET["Last"]); $AppVer=utf8_encode($_GET["Version"]);
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 592
11 nov. 2020 à 14:52
11 nov. 2020 à 14:52
Bonjour,
Si je peux me permettre .... si tu dois faire de l'utf8_encode dans tes scripts... c'est qu'au départ y'a un souci.
Pour moi, c'est que, soit tes fichiers ne sont pas bien encodés, soit c''est le charset de ta bdd, soit l'encodage défini dans ton html...
Quoi qu'il en soit, je commencerai pas corriger ça
https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8
Si je peux me permettre .... si tu dois faire de l'utf8_encode dans tes scripts... c'est qu'au départ y'a un souci.
Pour moi, c'est que, soit tes fichiers ne sont pas bien encodés, soit c''est le charset de ta bdd, soit l'encodage défini dans ton html...
Quoi qu'il en soit, je commencerai pas corriger ça
https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
11 nov. 2020 à 14:53
11 nov. 2020 à 14:53
ce qui contredit ce que tu avais écrit en #2. tu choisis de faire des tours et des détours...
as-tu essayé la suggestion en #20? cela t'aidera sans doute à progresser.
as-tu essayé la suggestion en #20? cela t'aidera sans doute à progresser.
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
11 nov. 2020 à 15:05
11 nov. 2020 à 15:05
@jordane45 : je dois encoder en UTF-8 parce que le php est appelé à partir de VB6.
Tout ça fonctionne très bien à l'exception que j'ai parfois (rarement) une erreur SUBJ_ILLEGAL_CHARS.
@yg_be : en #2 j'ai voulu simplifier parce que tu aurais commencé par me demander de qu'il y a dans les variables, comme le problème se posait déjà sur les é è on risquait moins de s'égarer.
Je ne m'attendais pas à ce que tu hardcode les signes accentués encodés.
Maintenant que ça fonctionne je cherche comment convertir é en =E8, è en =E9 et aussi tous les caractères "illégaux" automatiquement (par une fonction) puisque manifestement quoted_printable_encode() et imap_8bit() ne donnent pas le résultat escompté : ils convertissent tous deux é en =C3A8 et è en =C3A9
Tout ça fonctionne très bien à l'exception que j'ai parfois (rarement) une erreur SUBJ_ILLEGAL_CHARS.
@yg_be : en #2 j'ai voulu simplifier parce que tu aurais commencé par me demander de qu'il y a dans les variables, comme le problème se posait déjà sur les é è on risquait moins de s'égarer.
Je ne m'attendais pas à ce que tu hardcode les signes accentués encodés.
Maintenant que ça fonctionne je cherche comment convertir é en =E8, è en =E9 et aussi tous les caractères "illégaux" automatiquement (par une fonction) puisque manifestement quoted_printable_encode() et imap_8bit() ne donnent pas le résultat escompté : ils convertissent tous deux é en =C3A8 et è en =C3A9
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
Modifié le 11 nov. 2020 à 15:12
Modifié le 11 nov. 2020 à 15:12
as-tu essayé la première suggestion en #20? cela t'aidera sans doute à progresser.
je la fais fonctionner, sans soucis, avec quoted_printable_encode().
je la fais fonctionner, sans soucis, avec quoted_printable_encode().
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
11 nov. 2020 à 15:20
11 nov. 2020 à 15:20
Comme en #20
ou
les deux fonctionnent.
Comment convertir tous les caractères "illégaux" automatiquement (par une fonction) ?
De préférence en UTF-8 puisque c'est ainsi que les variables sont encodées.
$Subject2 = "=?utf-8?q?Code d'acc=C3=A8s Herv=C3=A9 Reef Tools?=";
ou
$Subject2 = "=?iso-8859-1?q?Code d'acc=E8s Herv=E9 Reef Tools?=";
les deux fonctionnent.
Comment convertir tous les caractères "illégaux" automatiquement (par une fonction) ?
De préférence en UTF-8 puisque c'est ainsi que les variables sont encodées.
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
11 nov. 2020 à 15:23
11 nov. 2020 à 15:23
je le fais facilement avec quoted_printable_encode().
comment cela se fait-il que chez toi cela ne fonctionne pas? connais-tu le jeu des sept erreurs?
comment cela se fait-il que chez toi cela ne fonctionne pas? connais-tu le jeu des sept erreurs?
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
11 nov. 2020 à 15:28
11 nov. 2020 à 15:28
peu importe comment les variables sont encodées, cela n'a pas d'influence sur le codage à la sortie de la fonction.
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
Modifié le 11 nov. 2020 à 15:56
Modifié le 11 nov. 2020 à 15:56
$Subject = "Code d'accès Hervé Reef Tools"; $Subject = "=? UTF-8? Q?".quoted_printable_encode($Subject)."? =";
ne fonctionne pas
à la main
$Subject2 = "=?utf-8?q?Code d'acc=C3=A8s Herv=C3=A9 Reef Tools?=";
fonctionne : les blancs ?
$Subject2 = "=?utf-8?q?".quoted_printable_encode($Subject1)."?=";
c'est presque bon.
Presque parce que
$Subject1 = "Code d'accès Hervé Reef Tools ".$AppVer." pour ".$Userid." (".$First." ".$Last.") @ adresse.mail@mail.com"; $Subject2 = "=?utf-8?q?".quoted_printable_encode($Subject1)."?=";
donne comme sujet
Code d'accès Hervé Reef Tools AppVersion pour 1 (2 3) @ adresse.m= ail@mail.com
pourquoi "= " après le m de mail ?
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
11 nov. 2020 à 16:05
11 nov. 2020 à 16:05
je pense que la fonction découpe le texte en plusieurs lignes dès qu'il devient trop long.
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
>
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
11 nov. 2020 à 16:14
11 nov. 2020 à 16:14
il suffit d'appeller la fonction sur des parties du sujet.
tu peux aussi l'utiliser à la place de utf8_encode
tu peux aussi l'utiliser à la place de utf8_encode
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
11 nov. 2020 à 16:22
11 nov. 2020 à 16:22
En effet, j'ai trouvé en même temps : imap_8bit et quoted_printable_encode limitent à 76 caractères, il découpe à l'aide de "=\r\n".
Le hic est que j'ai bien plus de 76 caractères, notamment parce que $First et $Last sont les nom et prénom de l'utilisateur qui demande le code; j'ai des mails dont le sujet dépasse largement les 100 caractères !
Qu'à cela ne tienne
ça marche !
Le hic est que j'ai bien plus de 76 caractères, notamment parce que $First et $Last sont les nom et prénom de l'utilisateur qui demande le code; j'ai des mails dont le sujet dépasse largement les 100 caractères !
Qu'à cela ne tienne
$Subject2 = str_replace("=\r\n","",$Subject2);
ça marche !
Herve_be
Messages postés
999
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2023
7
11 nov. 2020 à 16:26
11 nov. 2020 à 16:26
En effet, encoder QP chaque variable.
Tu n'aimes pas mon str_replace ?
Par contre je n'ai pas compris "utiliser à la place de utf8_encode".
Tu n'aimes pas mon str_replace ?
Par contre je n'ai pas compris "utiliser à la place de utf8_encode".
yg_be
Messages postés
21505
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 juin 2023
1 344
11 nov. 2020 à 16:49
11 nov. 2020 à 16:49
tu fais
et ensuite tu appelles quoted_printable_encode
tu peux faire directement
$Mail=utf8_encode($_GET["Mail"]);
et ensuite tu appelles quoted_printable_encode
tu peux faire directement
quoted_printable_encode($_GET["Mail"])