| [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? | |
|
+2GrosBill Hunta_de_la_Radieuse 6 participants |
Auteur | Message |
---|
Hunta_de_la_Radieuse Frénétik Nabaztrice
Age : 49 Localisation : Anse Lapin Nabaztag : Hunta (v2) Nbr de messages : 3832 Carottes : 6596
| Sujet: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 17:45 | |
| Hello tous ! Je m'arrache les cheveux ! : impossible de faire lire par ma Nabaztagette, par exemple, le sujet de mail envoyé par un script PHP s'il contient des accents ou des des caractères latins(?) : ç, ô, é, etc. ne passent pas... Aucun souci, en revanche lorsqu'il n'y a pas d'accent ou de caractère latin : le message est bien lu... J'ai tenté de tripatouiller les headers du script (content type et charset) et ceux du mail lui même avec des utf-8, iso-8859-1, plain, html, print quoted... Mais, il semblerait qu'il y ait plus de chances de gagner à la loterie que de trouver la solution à ce problème en utilisant le seul hasard... C'est donc courbée - presque à l'horizontale - que je viens implorer votre généreuse participation !
Dernière édition par Hunta_de_la_Radieuse le Jeu 5 Fév 2009 - 12:30, édité 3 fois | |
|
| |
GrosBill Gold Nabz
Localisation : Paris Nabaztag : Kikiztag Nbr de messages : 622 Carottes : 6892
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 18:31 | |
| bah euh pour une fois je seche aussi. | |
|
| |
nabazland Karotzeur taquin
Age : 57 Localisation : Rouen - France Nabaztag : Caulfield (v2.1) Nbr de messages : 9783 Carottes : 13344
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 19:13 | |
| Il n'y a pas euh de changement... Il faut urlencoder de l'utf8
Par exemple 'élève' http://api.nabaztag.com/vl/FR/api.jsp?sn=00135EE2&token=116840126&tts=%C3%A9l%C3%A8ve _____________________________
| |
|
| |
Hunta_de_la_Radieuse Frénétik Nabaztrice
Age : 49 Localisation : Anse Lapin Nabaztag : Hunta (v2) Nbr de messages : 3832 Carottes : 6596
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 19:47 | |
| Si je comprends bien ce que tu me dis, dans le script ça donne - par exemple : - Code:
-
<?php if(isset($_GET['to'])) { $to = $_GET['to'];
//$to = "zzz@things.violet.net"; $subject = urlencode(utf8_encode("élève")); $message = ""; $additional_headers = 'From: xxx@yyy.com' . "\r\n" . 'Reply-To: xxx@yyy.com' . "\r\n" . 'Return-Path: <xxx@yyy.com>' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); echo "Envoi à " . $to . ". Message : " . $subject; mail ($to, $subject,$message, $additional_headers); } else { echo "Pas de 'to=', pas d'envoi..."; } ?> Mais, dans ce cas, la voix prononce vraiment "%C3%A9l%C3%A8ve" ! | |
|
| |
nabazland Karotzeur taquin
Age : 57 Localisation : Rouen - France Nabaztag : Caulfield (v2.1) Nbr de messages : 9783 Carottes : 13344
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 19:52 | |
| Oooopppsss... J'avais pas vu... Désolé... c'est dans un mail... désolé... Pô lu ! Je vais rechercher un peu... _____________________________
| |
|
| |
GrosBill Gold Nabz
Localisation : Paris Nabaztag : Kikiztag Nbr de messages : 622 Carottes : 6892
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 19:56 | |
| [Edit] Arrivage apres la guerre..
l'urlencodage de l'utf8 d'utf8 marche pour un appel de tts dans une url mais dans le cas de la fonction mail de php
mail($to, urlencode(utf8_encode($subject)), $message, $headers);
donne ceci %C3%A9%C3%A9%C3%A9+%C3%A8%C3%A8%C3%A8%C3%A8+ohoh avec comme sujet "ééé èèèè ohoh"
donc je pense pas que le urlencode soit utile pour le sujet d'un mail. | |
|
| |
nabazland Karotzeur taquin
Age : 57 Localisation : Rouen - France Nabaztag : Caulfield (v2.1) Nbr de messages : 9783 Carottes : 13344
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 20:07 | |
| Normalement le charset pour le français est iso-8859-1 l'utf8 est préférable.. Mais bon c'est uniquement pour le corps du message Pour le sujet.. - Citation :
- subject
Sujet du mail à envoyer. Attention Sujet doit satisfaire à la » RFC 2047. ---> http://www.faqs.org/rfcs/rfc2047 Pour l'encodage... je cherche ! _____________________________
| |
|
| |
nabazland Karotzeur taquin
Age : 57 Localisation : Rouen - France Nabaztag : Caulfield (v2.1) Nbr de messages : 9783 Carottes : 13344
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 20:13 | |
| - Citation :
The "Subject" field can be encoded as MIME header (see RFC 2045-2048). For example, given the subject $subj encoded as a UTF-8 string, a possible encoding might be
define("ENCODING", "UTF-8");
$header = "Subject: =?" . ENCODING . "?B?" . base64_encode($subj) . "?=\r\n";
Note that the RFC 2047 sets a limit to the maximum lenght of the resulting string. Beyond that limit the string must be splitted somewere. However, the email clients I tested are able to accept a string of any length, so this is a problem you may ignore as a first step of the implementation.
And note that this encoding has nothing to do with the Content-Type field or the body of the message.
Obviously, your "Unicode entities" must be converted to regular UTF-8 characters before the Base64 encoding be applied.
_____________________________
| |
|
| |
Hunta_de_la_Radieuse Frénétik Nabaztrice
Age : 49 Localisation : Anse Lapin Nabaztag : Hunta (v2) Nbr de messages : 3832 Carottes : 6596
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 20:47 | |
| Si j'ai bien compris, on l'utilise comme ce ci : - Code:
-
<?php $to = "zzz@things.violet.net"; $subj = "été indien."; $message = ""; $additional_headers = 'From: xxx@yyy.com' . "\r\n" . 'Reply-To: xxx@yyy.com' . "\r\n" . 'Return-Path: <xxx@yyy.com>' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); echo "Envoi à " . $to . ". Message : " . $subj; define("ENCODING", "UTF-8");
$subject .= "Subject: =?" . ENCODING . "?B?" . base64_encode($subj) . "?=\r\n"; mail ($to, $subj, $message, $additional_headers); echo "header : " . $additional_headers; ?> Mais, le mail n'arrive pas... Quand on l'envoie au lapin (le même sans accent arrive, lui et est lu...) | |
|
| |
nabazland Karotzeur taquin
Age : 57 Localisation : Rouen - France Nabaztag : Caulfield (v2.1) Nbr de messages : 9783 Carottes : 13344
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 20:54 | |
| comme ça ? Paske là tu mix headers, $subj, $subject... - Code:
-
<?php $to = "zzz@things.violet.net"; $subj = "été indien."; $message = ""; $additional_headers = 'From: xxx@yyy.com' . "\r\n" . 'Reply-To: xxx@yyy.com' . "\r\n" . 'Return-Path: <xxx@yyy.com>' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); echo "Envoi à " . $to . ". Message : " . $subj; $subj = base64_encode(utf8_encode(($subj)); mail ($to, $subj, $message, $additional_headers); echo "header : " . $additional_headers; ?>
_____________________________
| |
|
| |
Hunta_de_la_Radieuse Frénétik Nabaztrice
Age : 49 Localisation : Anse Lapin Nabaztag : Hunta (v2) Nbr de messages : 3832 Carottes : 6596
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 21:04 | |
| - Code:
-
<?php $to = "zzz@things.violet.net"; $subj = "été indien."; $message = ""; $additional_headers = 'From: xxx@yyy.com' . "\r\n" . 'Reply-To: xxx@yyy.com' . "\r\n" . 'Return-Path: <xxx@yyy.com>' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); echo "Envoi à " . $to . ". Message : " . $subj; $subj = base64_encode(utf8_encode(($subj))); mail ($to, $subj, $message, $additional_headers); echo "header : " . $additional_headers; ?>
Donne la lecture de "w4PCqXTDg8KpIGluZGllbi4=" | |
|
| |
nabazland Karotzeur taquin
Age : 57 Localisation : Rouen - France Nabaztag : Caulfield (v2.1) Nbr de messages : 9783 Carottes : 13344
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 21:06 | |
| _____________________________
| |
|
| |
Hunta_de_la_Radieuse Frénétik Nabaztrice
Age : 49 Localisation : Anse Lapin Nabaztag : Hunta (v2) Nbr de messages : 3832 Carottes : 6596
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 21:06 | |
| EDIT : On n'est loin en tout cas on dirait ! Et, dans ta première citation, c'est bien les headers qui sont mis à contribution on dirait ! On devrait peut-être continuer en chat ou MP ?
Dernière édition par Hunta_de_la_Radieuse le Mar 3 Fév 2009 - 21:10, édité 1 fois | |
|
| |
nabazland Karotzeur taquin
Age : 57 Localisation : Rouen - France Nabaztag : Caulfield (v2.1) Nbr de messages : 9783 Carottes : 13344
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 21:07 | |
| et comme ça ? - Code:
-
$subj = base64_encode($subj); _____________________________
| |
|
| |
nabazland Karotzeur taquin
Age : 57 Localisation : Rouen - France Nabaztag : Caulfield (v2.1) Nbr de messages : 9783 Carottes : 13344
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 21:08 | |
| mouep, le sujet est mis dans le header dans l'exemple.... _____________________________
| |
|
| |
GrosBill Gold Nabz
Localisation : Paris Nabaztag : Kikiztag Nbr de messages : 622 Carottes : 6892
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 21:56 | |
| pfff qu'il est fort ce nabazland.
Il propose des trucs et en plus marche. Enfin on finit les tests et on essaye de vous publier une soluce. | |
|
| |
Diaoul Bronze Nabz
Age : 37 Localisation : France Nabaztag : Patapwet Nbr de messages : 221 Carottes : 6053
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 22:01 | |
| N'utilisez surtout pas la fonction mail de php, sauf si vous voulez vous transformer en serveur de spam...
Une petite header-injection et vous voilà spammeur...
Pour l'envoi de mail, j'utilise Zend Mail
1) Y'a pas plus simple 2) Aucune injection d'en-tête possible 3) Les accents passent tout seul | |
|
| |
Hunta_de_la_Radieuse Frénétik Nabaztrice
Age : 49 Localisation : Anse Lapin Nabaztag : Hunta (v2) Nbr de messages : 3832 Carottes : 6596
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mar 3 Fév 2009 - 23:15 | |
| Peux-tu nous en dire un peu plus s'il te plaît ? | |
|
| |
Diaoul Bronze Nabz
Age : 37 Localisation : France Nabaztag : Patapwet Nbr de messages : 221 Carottes : 6053
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Mer 4 Fév 2009 - 10:40 | |
| Oui Voilà On peut donc faire ça via un formulaire (variables POST) ou autrement, si une de tes variables que tu passe en parametre dans la fonction mail() de php est issue de ta base de donnée et que l'utilisateur s'est inscrit en mettant une injection d'header à la place de son email. PAF. Zend est un framework complet. Il suffit de faire un require once de Zend/Mail.php et tu peux utiliser la classe qui crée des mails Je te donnerai des détails sur l'installation de Zend depuis chez moi ce soir si tu veux. Perso, j'utilise aussi Zend Feed pour créer mon flux RSS des news de Chez Patapwet, ou même pour changer la langue du RSS de facebook (on en avait deja parlé). Zend mail pour tout ce qui est de l'envoi de mail. | |
|
| |
Hunta_de_la_Radieuse Frénétik Nabaztrice
Age : 49 Localisation : Anse Lapin Nabaztag : Hunta (v2) Nbr de messages : 3832 Carottes : 6596
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Jeu 5 Fév 2009 - 12:24 | |
| OK. Merci pour le lien et les explications. Toutefois, compte tenu de l'utilisation que nous prévoyons de cette fonction, il ne devrait pas y avoir de risque d'injection. Nous tentons autant que possible de vérifier ce qui est saisi avant de l'utiliser en entrée... Et, si possible, également en sortie. Merci quoi qu'il en soit pour ce rappel de l'importance de la sécurité dans le code "maison" ! | |
|
| |
Hunta_de_la_Radieuse Frénétik Nabaztrice
Age : 49 Localisation : Anse Lapin Nabaztag : Hunta (v2) Nbr de messages : 3832 Carottes : 6596
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Jeu 5 Fév 2009 - 12:37 | |
| Merci à Nabazland et GrosBill pour la solution proposée ! Petit détail qui m'avait emberlificoté tout ça : la remarquable aptitude de l'éditeur de texte utilisé qui permet de travailler en toute transparence en ISO-8859-1 ou en UTF-8 ou autre... Ma Nabaztagette me dit que, la prochaine fois, elle me rappellera de vérifier l'encodage du fichier de travail... | |
|
| |
Mathuieu Lapin nain
Age : 37 Localisation : Madrid Nabaztag : Antonio Nbr de messages : 5 Carottes : 5836
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Ven 6 Fév 2009 - 19:23 | |
| c pas la peine de s'embêter à écrire un mail, tu appelle un tts dans une url et ça marche normalement avec le urlencode() | |
|
| |
Phabbrrysse Nabazteur Voyageur
Age : 38 Localisation : Sassenage Nabaztag : PhormiBBrrysse et Pharramyneu (V2) Nbr de messages : 14389 Carottes : 13328
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? Ven 6 Fév 2009 - 23:17 | |
| - Mathuieu a écrit:
- c pas la peine de s'embêter à écrire un mail, tu appelle un tts dans une url et ça marche normalement avec le urlencode()
Sauf si pour différentes raisons tu n'as pas le token et le sn ou que tu veux ecrire a une ztamps... _____________________________ Connexion du lapin difficile : ICI -- PAS D'AIDE PAR MP NI PAR MAIL | |
|
| |
Diaoul Bronze Nabz
Age : 37 Localisation : France Nabaztag : Patapwet Nbr de messages : 221 Carottes : 6053
| |
| |
Contenu sponsorisé
| Sujet: Re: [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? | |
| |
|
| |
| [RESOLU] Comment envoyer, aux objets et avec PHP, un mail contenant des accents dans le sujet ? | |
|