Fonction php mail() et accentuation

Bonjour,

J’ai récupéré le formulaire d’envoir de mail fournit ici : http://www.ouvaton.coop/spip.php?article59
que j’utilise tel quel dans une page de dokuwiki.

Les accents ne passe pas sur ma boite mail ouvaton.

J’ai pourtant mis çà dans la variable headers : Content-Type: text/plain; charset=utf-8

Je n’ai pas ce problème avec mon compte gmail (sur lequel je reçois une copie du mail envoyé).

Que puis-je faire ?

Cordialement,
Etienne

Hello,

Cette histoire d’accents est un serpent de mer :frowning: Je ne suis pas sûr que l’en-tête soit la solution, dans la mesure où le mail est envoyé par le serveur SMTP. Et je ne sais pas quel encodage utilise le serveur, mais ça risque bien d’être du ISO-8859-1 (ou du genre). As-tu essayé de mettre un autre encodage qu’unicode?

Par ailleurs, je sais qu’il y a souvent des problèmes dans les formulaires à cause de tout ce qui sort de l’ASCII 7-bits et des caractères spéciaux (guillemets, apostrophes…) qui doivent parfois être échappés (/" à la place de "). Il me semble qu’il y a une option (dans php.ini? dans la conf d’Apache?) qui permet d’accepter tout d’un coup, mais il faudrait faire une recherche.

Un petit tour sur Google si le changement d’en-tête n’a pas fait d’effet…

Coop,
Greg

J’ai essayé “utf-8”, “ISO-8859-1” et “ISO-8859-15” dans les headers de la fonction mail mais çà ne change rien, les accents sont présentés par le squirrelmail d’ouvaton sous forme de “?”.
J’ai aussi découvert l’attribut “accept-charset” pour les formulaires mais les tests n’ont rien donné.

La compréhension des accents dépend surement de la configuration d’appache comme vous le dites mais je ne sais où le fichier php.ini doit se trouver pour être opérationnel. Aussi, elle dépend du serveur mail qui reçoit : par exemple, sur un compte gmail, les accents ne sont pas perdus.
Pourriez-vous m’aider à me débloquer :slight_smile: ?

Bonsoir,

Pour le sujet des messages, j’ai fait comme ceci :

$sujet_envoye=stripslashes(str_replace("\"","'",$_POST'sujet'])); $sujet_envoye=strip_tags($sujet_envoye); $sujet_envoye=mb_encode_mimeheader($sujet_envoye);
C’est bien la fonction php mb_encode_mimeheader() qui résoud ce problème.

Christian.