Envoyer un mail en PHP

Février 2013

PHP est fourni avec une fonction native permettant d'envoyer des email : mail().

Pour l'utiliser, il suffit de lui passer en paramètre l'adresse email du destinataire, l'objet du mail ainsi que le message. Un quatrième paramètre permet d'envoyer des headers personnalisés, ce qui sert par exemple à envoyer des mails en texte riche (en HTML), ou à spécifier l'encodage (Latin1, UTF-8) :

<?php
$destinataire = "bob@yopmail.com";
$objet        = "Alice parle à Bob";
$content      = "<b>Salut Bob !</b>";

$headers  = "";
$headers .= "From: alice@yomail.com\n";
$headers .= "MIME-version: 1.0\n";
$headers .= "Content-type: text/html; charset=utf-8\n";

$result = mail($destinataire, $objet, $content, $headers);

if( !$result ){
	echo "L'envoi du mail a échoué";
}
?>

Configuration de l'envoi de mail

La fonction mail n'est pas magique, en réalité son fonctionnement dépend du fichier de configuration de PHP : php.ini.

UNIX

Sur un serveur UNIX (Linux, Mac OS), PHP utilise le serveur SMTP installé sur la machine pour envoyer le mail. En général il s'agit d'un de ces 3 programmes : sendmail, postfix ou qmail.

Concernant Linux c'est assez facile à installer avec une ligne de commande, par contre sur MacOS c'est beaucoup plus délicat, vous trouverez plus d'infos ici pour configurer php pour envoyer des mails sur MacOS : http://jspr.tndy.me/php-mail-and-osx-leopard/.

Windows

Heureusement si vous développez sous windows (avec EasyPHP ou WAMP) c'est beaucoup plus simple, car sur cette plateforme, PHP utilise le serveur SMTP configuré dans php.ini :

Dans un tout autre contexte, cet article est très intéressant : ouvrir plusieurs fenêtres excel en même temps.

[mail function]
; For Win32 only.
SMTP = smtp.orange.fr
smtp_port = 25

; For Win32 only.
sendmail_from = me@example.com

Classe d'envoi de mail

La fonction mail() native de PHP n'est pas le seul moyen d'envoyer des emails, il existe des classes PHP à télécharger sur internet qui sont spécialement conçues pour gérer l'envoie de mail avancé. Cela permet par exemple d'envoyer des mails en HTML (texte riche) sans devoir gérer soit même les headers :

  • PHPMailer
  • CakeEmail, un composant du framework CakePHP
  • Swiftmailer
  • Simplemail : une classe obsolète qu'on trouve sur certains vieux projets web, le site officiel est fermé, il est très difficile de se la procurer

Encore faim ? allez lire ça : texte corde 3d !

0 commentaire
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré