Discussion:
mail() envoie de l'utf-8...
(trop ancien pour répondre)
Sebastien
2005-11-23 08:17:54 UTC
Permalink
Bonjour,

J'utilise un formulaire de contact sur un site en utf-8. En toute
logique le contenu du mail est également codé en utf-8.

Le problème est que les clients mail Windows sont configurés pour
recevoir du latin-1 ou du Windows-1252. Tous les caractères spéciaux
sont donc illisibles dans le client de messagerie...

Connaissez-vous une parade ? PHP peut-il convertir utf-8 en latin 1
(iso-8859-1) ?

Sébastien
Olivier Miakinen
2005-11-23 08:39:34 UTC
Permalink
Post by Sebastien
J'utilise un formulaire de contact sur un site en utf-8. En toute
logique le contenu du mail est également codé en utf-8.
Oui.
Post by Sebastien
Le problème est que les clients mail Windows sont configurés pour
recevoir du latin-1 ou du Windows-1252. Tous les caractères spéciaux
sont donc illisibles dans le client de messagerie...
Ça, je suis désolé, mais c'est n'importe quoi. Les clients mail, qu'ils
soient sous Window ou non, sont prévus pour lire l'encodage spécifié
dans le message. Si aucun charset n'est spécifié, ce qui est mal ©, ils
se rabattent sur l'encodage par défaut, qui peut être Latin-1 en France,
mais Shift-JIS au Japon ou BIG5 en Chine.

Comme c'est toi qui génères le courriel, c'est à toi de mettre les
entêtes qui vont bien :

MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8

(Je fais suivre la discussion vers fr.comp.mail où c'est en charte)
Post by Sebastien
Connaissez-vous une parade ?
Voir ci-dessus.
Post by Sebastien
PHP peut-il convertir utf-8 en latin 1 (iso-8859-1) ?
Oui, avec la lib iconv, mais c'est idiot puisque nécessairement tu
perdras tous les caractères n'appartenant pas à Latin-1.
--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)
ASM
2005-12-04 10:23:56 UTC
Permalink
Post by Olivier Miakinen
Comme c'est toi qui génères le courriel, c'est à toi de mettre les
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8
(Je fais suivre la discussion vers fr.comp.mail où c'est en charte)
Salut,

avant de courrir berzigue (que j'ai eu un mal fou à continuer ici)

puisqu'on est ici sur le php,
puisque je n'y connais rien
comment fais-tu çà en php
(code et toussa)

je suis tres *fortement* interressé (cf + bas)
Post by Olivier Miakinen
Post by Sebastien
PHP peut-il convertir utf-8 en latin 1 (iso-8859-1) ?
Oui, avec la lib iconv, mais c'est idiot puisque nécessairement tu
perdras tous les caractères n'appartenant pas à Latin-1.
surtout que j'ai un absolu besoin du cyrillique
(en plus du latin et du windows et par sécurité du roman)
(bref, l'utf-8 semble la panacèe)


PS: svp bien délayer la sauce :-)
--
Stephane Moriaux et son [moins] vieux Mac
Sebastien
2005-12-11 07:15:05 UTC
Permalink
Post by ASM
puisqu'on est ici sur le php,
puisque je n'y connais rien
comment fais-tu çà en php
(code et toussa)
Comme tu as pu le constater dans mon message original, je ne suis pas un
pro, donc à tester !

<?php
$destinataire = '***@exemple.fr'; // Adresse email du destinateire du
message

$sujet = 'Sujet du message';

$message = 'Ligne 1'."\r\n"; // Début du message
$message .= 'Ligne 2'."\r\n"; // suite du message...
$message .= 'Ligne 3'."\r\n"; // suite du message...

$en_tetes = 'MIME-Version: 1.0'."\r\n";
$en_tetes .= 'Content-Transfer-Encoding: 8bit'."\r\n";
$en_tetes .= 'Content-Type: text/plain; charset=utf-8'."\r\n";

if(mail($destinataire, $sujet , $message , $en_tetes))
{
echo 'Le message a été envoyé';
}
else
{
echo 'Erreur lors de l\'envoi.';
}
?>

Sébastien
ASM
2005-12-18 20:36:53 UTC
Permalink
Post by Sebastien
Post by ASM
comment fais-tu çà en php
Comme tu as pu le constater dans mon message original, je ne suis pas un
pro, donc à tester !
çà m'a l'air pas mal
Hop! archivé

Merci
--
Stephane Moriaux et son [moins] vieux Mac
Loading...