Problèmes d'accents dans les mails

Archive

Messagepar Grenouye » Lun 05 Oct 2009, 14:02

Bonjour
Comme dit dans le titre, pour tous les mails envoyés au client et ceux que je reçois quand il y a une commande les accents de sont pas codés.
Ex :
Objet du mail : Mise à jour de la commande
Mail : Le statut de votre commande a été mis à jour par le suivant.
Je ne vois pas comment régler le problème. Auriez-vous une idée ?
Grenouye
Membre actif
 
Messages: 52
Inscription: Sam 07 Fév 2009, 20:25

Messagepar oscim » Lun 05 Oct 2009, 17:08

Bonjour

En fait, il s'agit des caratére html, contenu dans les fichiers de langue qui ne sont pas pris en charge lors de la transition vers l'email.

La solution consitste a modifier les carétéres en entité html par leur homologue en accent. donc en texte normal.
Le problémes de cette solution viens du fait que la version 1.2.1 ne centralise pas les textes des emails. Il faut donc editer et corriger les fichier un par un.
lourd !

L'autre solution consiste à ajouter un ratrappage des accents lors de l'envoi d'email, et ainsi, reconvertir les entité html en accent. pour ce faire, il est nécessaire d'ajouter une fonction a html_output

Code: Tout sélectionner
/**
* @author oscim - OscssTeam
* @package oscss-Rv
Nettoyeur de chaine de caratére, ou le reverse de htmlentites
unhtmlentities([[$chaineHtml string],$utf8 (option) boolean])
*/
function unhtmlentities($chaineHtml,$utf8=false) {
    $tmp = get_html_translation_table(HTML_ENTITIES);
    $tmp = array_flip ($tmp);
    $chaineTmp = ($utf8==true) ?utf8_encode(strtr ($chaineHtml, $tmp)) : strtr ($chaineHtml, $tmp);
    return $chaineTmp;
}

Et modifier l'appel de la function d'envoi de mail (tep_mail() ) comme suit:

Code: Tout sélectionner
$send_obj_message->add_html($email_text, $text);

Par
Code: Tout sélectionner
$send_obj_message->add_html(unhtmlentities($email_text), $text);
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar Grenouye » Lun 05 Oct 2009, 19:11

Merci pour ta réponse.
Je ne trouve pas la ligne :
$send_obj_message->add_html($email_text, $text);
où puis je la trouver ?
Grenouye
Membre actif
 
Messages: 52
Inscription: Sam 07 Fév 2009, 20:25

Messagepar Ayatus » Lun 05 Oct 2009, 19:24

Bonjour,

Dans admin/functions/general.php aux environs de la ligne 1134 :
Code: Tout sélectionner
if (EMAIL_USE_HTML == 'true') {
$message->add_html($email_text, $text);
Avatar de l’utilisateur
Ayatus
Site Admin
 
Messages: 280
Inscription: Sam 19 Avr 2008, 17:23

Messagepar Grenouye » Lun 05 Oct 2009, 19:43

Ok, merci.
J'ai donc ajouté à la fin avant ?> du fichier html_output.php le code :
Code: Tout sélectionner
/**
* @author oscim - OscssTeam
* @package oscss-Rv
Nettoyeur de chaine de caratére, ou le reverse de htmlentites
unhtmlentities([[$chaineHtml string],$utf8 (option) boolean])
*/
function unhtmlentities($chaineHtml,$utf8=false) {
    $tmp = get_html_translation_table(HTML_ENTITIES);
    $tmp = array_flip ($tmp);
    $chaineTmp = ($utf8==true) ?utf8_encode(strtr ($chaineHtml, $tmp)) : strtr ($chaineHtml, $tmp);
    return $chaineTmp;
}

puis remplacé
Code: Tout sélectionner
$message->add_html($email_text, $text);

par
Code: Tout sélectionner
$send_obj_message->add_html(unhtmlentities($email_text), $text);

mais ça ne marche pas, toujours les mêmes problèmes à la réception d'un message.
où me suis-je trompé ?
Grenouye
Membre actif
 
Messages: 52
Inscription: Sam 07 Fév 2009, 20:25

Messagepar Ayatus » Lun 05 Oct 2009, 22:09

tu aurais du remplacer :
Code: Tout sélectionner
$message->add_html($email_text, $text);

par :
Code: Tout sélectionner
$message->add_html(unhtmlentities($email_text), $text);
Avatar de l’utilisateur
Ayatus
Site Admin
 
Messages: 280
Inscription: Sam 19 Avr 2008, 17:23

Messagepar oscim » Mar 06 Oct 2009, 17:44

Sorry,

Je me rend compte que le code fournis n'est pas tout a fait copier/collable, il faut regarder un peu....
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar Grenouye » Mer 07 Oct 2009, 00:42

Oui désolé, j'avoue, je suis un copieur colleur qui ne comprend pas trop ce qu'il copie...
J'ai essayé avec la nouvelle ligne de code mais ça ne marche pas.
Pour la 1ere partie du code, il faut l'ajouter au html_output.php de l'admin ? ou à l'autre ? ou aux 2 ?
En fait lorsque je fais un test en envoyant un message à un client, le message est correcte, c'est dans l'objet et le texte "automatique" qui pose problème.
Merci en tout cas pour votre aide.
Grenouye
Membre actif
 
Messages: 52
Inscription: Sam 07 Fév 2009, 20:25

Messagepar Grenouye » Sam 10 Oct 2009, 11:50

Bonjour
Les modifs de code ne fonctionnent toujours pas chez moi, par contre, dans l'admin, dans les options de mail si je passe l'option " Utiliser MIME HTML pour l'envoi des emails " en true, là ça fonctionne. (sans le code ajouté, avec les fichiers d'origine)
Vous pensez que je peux laisser comme ça ?
Grenouye
Membre actif
 
Messages: 52
Inscription: Sam 07 Fév 2009, 20:25

Messagepar oscim » Sam 10 Oct 2009, 19:07

Bonjour

Les modif proposé n'infulme que sur le contenu du mail, pour les appliquer sur le sujet, il faut placer utiliser la function unhtmlentities sur le sujet.

Pour ce qui est de l'option html, dans ce cas les message sont envoyé au format html.

Les modifs proposé n'influe que sur le html dans tous les cas, si il faut les appliquer au format texte, alors la encore il faut utiliser la fucntion unhtmlentities
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33


Retourner vers osCSS 1.2.1

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

cron