Accueil
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
logo
Sommaire > Mails
        Que dois-je ajouter pour bénéficier du format HTML dans mon mail ?
        Comment envoyer un mail ?



Que dois-je ajouter pour bénéficier du format HTML dans mon mail ?
auteur : Eric Berger
En utilisant la fonction mail(), il faut indiquer
Content-Type: text/html; charset="iso-8859-1"
comme quatrième argument de la fonction. Le quatrième argument sert à spécifier des headers supplémentaires.

lien : faq Comment envoyer un mail ?

Comment envoyer un mail ?
auteurs : Forum PHP, Kerod, Linaa
Pour envoyer un mail en PHP, il nous faut utiliser la fonction mail() qui retourne TRUE si le mail a été accepté pour livraison, FALSE sinon.

Avant de pouvoir l'utiliser, nous devons vérifier les points suivants :
  • La fonction mail() est bien activée par l'hébergeur.
  • Pour le vérifier, il suffit de regarder son phpinfo() : Le serveur SMTP est correctement configuré.
Pour configurer le serveur SMTP, il faut ouvrir le fichier php.ini et rechercher la ligne :
Configuration actuelle
[mail function]
Puis mettre la configuration suivante :
Nouvelle configuration
; pour windows
smtp_port = 25 ;Valeur par défaut

; pour windows
SMTP = smtp.monfai.fr

; pour windows
sendmail_from = moi@monfai.fr ; Pas obligatoire

; pour unix.
;sendmail_path = /usr/sbin/sendmail ou /usr/lib/sendmail
PS : sendmail_path est utilisé pour localiser le programme d'envoi de mail par le serveur.

Attention : Si la directive sendmail_path est définie sous windows, alors smtp, smtp_port et sendmail_from seront ignorés et la commande spécifiée sera exécutée.

Une fois ces points réalisés, nous pouvons enfin passer à la construction du mail lui-même. Nous avons deux possibilités :

  1. L'envoi sous format texte
  2. L'envoi sous format HTML
Format texte
Mise en forme d'un mail sous format texte
<?php
$destinataire = 'adresse@fai.com';
// Pour les champs $expediteur / $copie / $destinataire, séparer par une virgule s'il y a plusieurs adresses
$expediteur = 'adresse@fai.com';
$copie = 'adresse@fai.com';
$copie_cachee = 'adresse@fai.com';
$objet = 'Test'; // Objet du message
$headers  = 'MIME-Version: 1.0' . "\n"; // Version MIME
$headers .= 'Reply-To: '.$expediteur."\n"; // Mail de reponse
$headers .= 'From: "Nom_de_expediteur"<'.$expediteur.'>'."\n"; // Expediteur
$headers .= 'Delivered-to: '.$destinataire."\n"; // Destinataire
$headers .= 'Cc: '.$copie."\n"; // Copie Cc
$headers .= 'Bcc: '.$copie_cachee."\n\n"; // Copie cachée Bcc        
$message = 'Un Bonjour de Developpez.com!';
if (mail($destinataire, $objet, $message, $headers)) // Envoi du message
{
    echo 'Votre message a bien été envoyé ';
}
else // Non envoyé
{
    echo "Votre message n'a pas pu être envoyé";
}
?>
Format HTML
Mise en forme d'un mail sous format HTML
<?php
$destinataire = 'adresse@fai.com';
// Pour les champs $expediteur / $copie / $destinataire, séparer par une virgule s'il y a plusieurs adresses
$expediteur = 'adresse@fai.com';
$copie = 'adresse@fai.com';
$copie_cachee = 'adresse@fai.com';
$objet = 'Test'; // Objet du message
$headers  = 'MIME-Version: 1.0' . "\n"; // Version MIME
$headers .= 'Content-type: text/html; charset=ISO-8859-1'."\n"; // l'en-tete Content-type pour le format HTML
$headers .= 'Reply-To: '.$expediteur."\n"; // Mail de reponse
$headers .= 'From: "Nom_de_expediteur"<'.$expediteur.'>'."\n"; // Expediteur
$headers .= 'Delivered-to: '.$destinataire."\n"; // Destinataire
$headers .= 'Cc: '.$copie."\n"; // Copie Cc
$headers .= 'Bcc: '.$copie_cachee."\n\n"; // Copie cachée Bcc        
$message = '<div style="width: 100%; text-align: center; font-weight: bold">Un Bonjour de Developpez.com !</div>';
if (mail($destinataire, $objet, $message, $headers)) // Envoi du message
{
    echo 'Votre message a bien été envoyé ';
}
else // Non envoyé
{
    echo "Votre message n'a pas pu être envoyé";
}
?>
Important : Afin de séparer les headers du corps du message, nous devons obligatoirement rajouter la chaîne "\r\n\r\n" à la fin de sa définition afin d'éviter les injections de headers.

Attention : Il est important de noter que ce n'est pas parce que le mail a été accepté pour livraison qu'il arrivera à destination.



Consultez les autres F.A.Q.


Les sources présentés sur cette page sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2003  Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com