PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#1 03/05/2018 09:31:54

mel2311
Membre
Inscription : 21/01/2018
Messages : 37

Envoi Mail par PHP - format HTML non reconnu

Bonjour,

J'utilise la fonction mail() de php pour envoyer un mail reprenant les éléments d'un formulaire lorsque celui-ci est validé. J'ai construit mon mail en format HTML afin de pouvoir faire un minimum de mise en forme.

Mon mail s'envoi bien, par contre, son affichage n'est pas respecté : le HTML ne semble pas reconnu et il s'affiche donc avec toutes les balises.

Comme je ne savais pas faire, j'ai travaillé à partir de tutos / codes trouvés sur le net mais ce ne doit pas être parfaitement appliqué...


Voici mon code pour l'envoi du mail :

[== PHP ==]
<?php

// Déclaration de l'adresse de destination.
$mail = 'xxxx@xxxxxx.fr';

if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
{
 $passage_ligne = "\r\n";
}
else
{
 $passage_ligne = "\n";
}

//construction du contenu du message a partir des donnees du formulaire
$message_html = "<html><head></head><body><u><b>Détails de la demande d'inscription :</b></u><br><br>";
$message_html.= "<b>Nom : </b>".$_POST['nom']."<br>";
$message_html.= "<b>Prenom : </b>".$_POST['prenom']."<br><br>";
$message_html.= "<b>Age: </b>".$_POST['age']."<br>";
$message_html.= "</body></html>";

//=====Création de la boundary
$boundary = "-----=".md5(rand());

//=====Définition du sujet.
$sujet = "Demande d'inscription (De ".$_POST['nom']." ".$_POST['prenom'].")";

//=====Création du header de l'e-mail.
$header = "From: ".$_POST['nom']." ".$_POST['prenom']."<".$_POST['courriel'].">".$passage_ligne;
$header.= "Reply-to: ".$_POST['nom']." ".$_POST['prenom']."<".$_POST['courriel'].">".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;

//=====Création du message.
$message = $passage_ligne."--".$boundary.$passage_ligne;

//=====Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;

//=====Envoi de l'e-mail 
mail($mail,$sujet,$message,$header);
?>

En autre, j'ai l'impression que la notion de $passage_ligne n'est pas reconnu..

Pour info, mon site est hébergé par online.net si cela peut crée une spécificité.

Merci pour votre aide !

M.B

Hors ligne

#2 04/05/2018 00:13:25

Yannic
Membre
Lieu : Lac-Saint-Jean QC CA
Inscription : 17/01/2017
Messages : 216
Site Web

Re : Envoi Mail par PHP - format HTML non reconnu

Salut,

Pas a maison pour le moment mais de ce que je vois tu envoie en multipart/alternative or au final tu n'envoie qu'un message html au lieu d'envoyer le message en text clair et ce meme message en html

Pas compris a quoi servais ton passage_ligne mais a mon avis tu t'embête pour rien

https://www.arobase.org/newsletters/mim … native.htm

Dernière modification par Yannic (04/05/2018 00:15:34)


Bonjour chez vous !
Mon Site sous PluXml : cryptoservices.net
Mon Blog sous PluXml : yenten.today

Hors ligne

#3 04/05/2018 09:09:18

mel2311
Membre
Inscription : 21/01/2018
Messages : 37

Re : Envoi Mail par PHP - format HTML non reconnu

Bonjour Yannic,

Merci pour ta réponse.
J'ai modifié multipart/alternative pour ne mettre que text/html dans le header (et je l'ai donc retirer du corps du message), et maintenant cela fonctionne correctement.

Au sujet du $passage_ligne, j'avais trouvé cela dans les tutos de mise en place des mails mais je ne sais pas bien non plus à quoi cela sert.
De même pour "boudary" qui était donné comme utile pour séparer les éléments mais si je le laisse ainsi, il s'affiche partout... pas très élégant ! donc je l'ai retiré du corps de message aussi.

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2018 PluXml.org, tous droits réservés