Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


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 :
  • L'envoi sous format texte
  • 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.


Comment obtenir un accusé de réception lors d'un envoi ?
auteur : Kerod
Pour avoir un accusé de réception après l'envoi d'un mail, il faut rajouter dans les headers l'option
Disposition-Notification-To: adresse@fai.com
Cela active de ce fait la confirmation de lecture.


Comment vérifier si le format d'une adresse e-mail est valide ?
auteur : Kerod
En utilisant une expression régulière (source) et la fonction preg_match() :
<?php
$regex = "/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i";
$courriel = "nom@domaine.com";
if (preg_match($regex, $courriel)) {
    echo "L'adresse $courriel est valide";
} else {
    echo "L'adresse $courriel n'est pas valide";
}
?>
À l'aide de ce test, vous pouvez savoir si la forme de l'adresse e-mail est valide mais il est possibe que la boîte mail n'existe pas sur le serveur.
Pour vérifier cela, le plus efficace est d'envoyer un e-mail contenant un lien sur lequel l'utilisateur doit cliquer. Avec cette méthode, vous pouvez être sûr que l'adresse e-mail existe bien.

lien : fr Tutoriel : Initiation aux expressions régulières en PHP, par Guillaume Rossolini
lien : fr Tutoriel sur la validation d'adresse e-mail en PHP, Alexandre Tranchant

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre 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. Tout 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érets. 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