Aller au contenu

Fonction mail - Spécifier l'encodage


karnabal

Sujets conseillés

Bonjour,

Je tâche - non sans difficultés - d'utiliser la fonction mail pour envoyer les données d'un formulaire.

Mon problème est que je n'arrive pas à spécifier l'encodage en UTF-8 pour le corps de l'email (je rencontre des soucis d'encodage à la réception).

Pouvez-vous me filer un coup de pouce ?

Extraits du code Php :

$titre="Message de votre site";
$tete="From:formulaire_AT_ndd.tld\n";
$tete="Content-Type: text/html; charset="utf-8""."\n";
$tete="Content-Transfer-Encoding: 8bit"."\n";

(mail("formulaire_AT_ndd.tld", $titre, stripslashes($corps), $tete))

J'en appelle à votre indulgence ; sans doutes de grossières erreurs figureront dans mon code, je ne manipule qu'exceptionnellement Php. ;)

Modifié par karnabal
Lien vers le commentaire
Partager sur d’autres sites

Le souci, c'est que tu écrases ta variable $tete à chaque déclaration.

A la fin de ton code, tu n'envoies que la dernière ligne.

pour faire ce que tu veux, il faut un opérateur de concaténation : le point.

Pour ajouter du contenu à une variable, on peut utiliser les deux méthodes suivantes :

<?php
$variable = 'du contenu';
$variable = $variable.'du contenu additionnel';
$variable .= 'encore du contenu additionnel';
?>

Ton code devrait donc ressembler à ceci :

<?php
$tete = "From:formulaire_AT_ndd.tld\n";
$tete .= "Content-Type: text/html; charset="utf-8""."\n";
$tete .= "Content-Transfer-Encoding: 8bit"."\n";
?>

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines plus tard...

J'ai cette erreur sur la page contenant le code :

Parse error: syntax error, unexpected T_STRING

		$titre="Message de votre site";
$tete = "From:formulaire_AT_ndd.tld\n";
$tete .= "Content-Type: text/html; charset="utf-8""."\n";
$tete .= "Content-Transfer-Encoding: 8bit"."\n";

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Il faut "echapper" les guillemets de la ligne :

$tete .= "Content-Type: text/html; charset="utf-8""."\n";

Ce qui va donner :

$tete .= "Content-Type: text/html; charset=\"utf-8\""."\n";

(Note les anti-slash devant les guillemets)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...