On
souhaite envoyer un
formulaire par courriel, pour cela on utilisera la fonction mail ( ).
Faire un petit script pour tester son serveur SMTP peut
s'avérer très utile pour ne pas perdre de temps sur un
code plus
étoffé.
Cela fait prenons l'exemple du script
pointé par mon formulaire de contact (en bas à
gauche
sur cette page). Il y a deux entêtes : le premier définit
l'adresse de l'expéditeur, et dans le deuxième je
retiens le jeu de caractères qui correspond à
celui de mon formulaire. La variable $_REQUEST récupère
les
paramètres de mon formulaire. Puis viennent les tests. On
fait un peu de nettoyage avec trim ( ), et on teste la
validité des champs avec empty ( ).
Enfin preg_match
( ) recherche l'expression régulière @, mais ici j'ai
voulu simplifier. On arrive
au contenu du courriel et on pense à initialiser la
variable $message avant d'ajouter les informations.
<?php
$header = 'From: Moga <unauteur@free.fr>';
$destinataire="meslivres@laposte.net";
$titre="réponse à mon formulaire";
$message = "test";
mail($destinataire,$titre,$message,$header);
?>
<?php
$header = 'From: Moga <unauteur@free.fr>'."\n";
$header .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$_REQUEST['nom']=trim($_REQUEST['nom']);
$_REQUEST['prénom']=trim($_REQUEST['prénom']);
$_REQUEST['mail']=trim($_REQUEST['mail']);
$_REQUEST['sujet']=trim($_REQUEST['sujet']);
$_REQUEST['texte']=trim($_REQUEST['texte']);
if (empty($_REQUEST['nom']) || empty($_REQUEST['prénom']) || empty($_REQUEST['mail']) || empty($_REQUEST['sujet']) || empty($_REQUEST['texte']))
{
die("<hr>ERREUR : tous les champs doivent être remplis.<br><hr>");
}
if (preg_match ("/@/",$_REQUEST['mail'])==false)
{
die("<hr>ERREUR : adresse non valide.<br><hr>");
}
$destinataire="meslivres@laposte.net";
$titre="réponse à mon formulaire";
$message = "";
$message .= "Nom : ".$_REQUEST['nom']."\n";
$message .= "Prénom : ".$_REQUEST['prénom']."\n";
$message .= "Email : ".$_REQUEST['mail']."\n";
$message .= "Sujet : ".$_REQUEST['sujet']."\n";
$message .= "Texte : ".$_REQUEST['texte']."\n";
if (mail($destinataire,$titre,$message,$header)==true)
{
print("<hr><b>OK , j'ai bien reçu votre message</b><br><hr>");
}
else
{
die("<hr>ECHEC<br><hr>");
}
?>