Easy-Micro

LANGAGE Langage PHP
Fonction mail

Utilisation de la fonction mail()

Fonction mail()

Pour le traitement par MAIL des formulaires en Php, on utilise la fonction mail.

Syntaxe: mail(destinataire, objet, message, expediteur);

Attention, cette fonction est désactivée chez la plupart des hébergeurs gratuit (Free, Orange...) pour cause de risque trops élevés d'utilisation malveillante. Cet exemple utilise le même formulaire que précédemment (index.php)

Le fichier "traitement.php" (appelé depuis le formulaire)
<?php
$expediteur = "From: " . $_POST['email'];
$destinataire = "moi@free.fr";
$objet = "Formulaire de contact";
$message = "";
 
// tant qu'il existe des champs de formulaire ($_POST)
while (list($champ, $valeur) = each($_POST)) {
   // on les stock dans la variable $message
   $message.= "$champ : ".stripslashes($valeur)."\n";
}
 
mail($destinataire,$objet,$message, $expediteur);
 
// puis redirection vers une page de remerciement
header("Location: merci.html");
?>

La fonction "list" utilisée ci-dessus dans la boucle "while", transforme une liste de variables en tableau pour les assigner en une seule ligne. Syntaxe: list($nouvelles_variables) = $anciennes_variables

Exemple en local

Voir ce tuto : Grafikart.fr

Ouvrez le fichier "php.ini" (sous EasyPHP, menu "Configuration/PHP"). Sous le titre [mail function], remplacez les paramètres des deux directives "SMTP" et "sendmail_from" par des adresses valides (serveur SMTP et mail).

Remplacez localhost par le nom du serveur SMTP de votre fournisseur d'accès. Exemples : SMTP = smtp.free.fr pour Free
SMTP = smtp.orange.fr pour Orange
SMTP = smtp.fr.aol.com pour Aol
etc.

Recherchez ensuite la ligne contenant ceci :
;sendmail_from = me@example.com
Enlevez le point-virgule (commentaire), puis remplacez me@localhost.com par votre adresse mail personnelle.

Attention, lors des tests, de n'utiliser que des adresse de DESTINATAIRE réelles.

Note: le protocol SMTP (Simple Mail Transfer Protocol) s'occupe du transport du courrier entre les differents serveurs. C'est le protocole applicatif qui permet de transporter les messages sur l'Internet. Il sait acheminer un message jusqu'à une boîte aux lettres, mais ne va pas plus loin.
Le protocole POP3 (Post Office Protocol 3) s'occupe de la communication entre le client de messagerie et la boîte aux lettres. Il ne fait pas de transport sur l'Internet, il permet juste à l'utilisateur de gérer son courrier. IMAP4 (Internet Mail Access Protocol version 4) en est une alternative. Plus d'infos sur l'IRP.

Message "Port déjà utilisé"

Si message d'erreur vous disant qu'Apache n'a pu démarrer car le port concerné est déjà utilisé: Changer le numéro du port utilisé (80) dans la config Apache (fichier httpd.conf) Listen 127.0.0.1:80 par un - par exemple: Listen 127.0.0.1:1050

< Page précédente LANGAGE PHP Page suivante >