Découverte du langage PHP
< Programmation PHP
: Accueil du site
Vous êtes ici : Envoyer des emails via php
Nous allons voir dans cet article comment envoyer un email à l'aide de PHP.
Sachez avant tout qu'il faut que votre hébergeur vous permet d'utiliser cette fonction, la plupart le permettent.
Nous allons utiliser la fonction mail() de PHP.
Voyons comment fonctionne sa structure :
mail(recepteur, sujet, message, parametres)
Voyons maintenant ce que sa donne dans une réelle utilisation :
<?php
mail('adresse@email.com', 'Le sujet du message', 'Le texte du message'); #On ne met pas de paramètre dans notre cas
echo 'Email envoyé';
?>
On commence en appellant la fonction mail(). On va passer 3 arguments à cette fonction :
Le premier 'adresse@email.com' qui designe l'adresse email receptrice du mail.
Le deuxième 'Le sujet du message' qui designe le titre, sujet du mail.
Le troisième et dernier 'Le texte du message' qui comprend tout simplement le texte du mail à envoyer.
Comme vous avez pu le voir dans la structure de la fonction mail il y'a un argument "parametres".
Cet argument permet de personnalisé l'envoi du mail.
Nous allons voir comment paramétrer notre envoi pour qu'il envoi le contenu au format HTML.
$parametres = "Content-Type:text/html;charset=iso-8859-1\n";
$parametres .= "Content-Transfer-Encoding: 8bit\n";
Placez la variable $parametres dans l'argument paramètres, votre mail sera envoyé au format HTML
Je précise que ce script n'est pas complétement sécurisé.
#Code de la page du formulaire
<form action="mapage.php" method="post">
<p><strong>Adresse email :</strong> <input type="text" name="email" /></p>
<p><strong>Sujet du mail :</strong> <input type="text" name="sujet" /></p>
<p><strong>Contenu :</strong><br />
<textarea name="contenu"></textarea></p>
<p><input type="submit" name="submit" value="Envoyer le mail" /></p>
#Code de la page : mapage.php
<?php
$email = htmlentities($_POST['email'], ENT_QUOTES);
$sujet = htmlentities($_POST['sujet'], ENT_QUOTES);
$contenu = nl2br(htmlentities($_POST['contenu'], ENT_QUOTES));
$parametres = "Content-Type:text/html;charset=iso-8859-1\n";
$parametres .= "Content-Transfer-Encoding: 8bit\n";[
mail($email, $sujet, $contenu, $parametres);
echo 'Mail envoyé';
?>
Ce code peut être amélioré en contrôlant l'existance de l'adresse et en contrôlant si la page n'a pas été réactualité.
Un code de sécurité aurait pu s'avérer utile pour éviter l'exécution du script par un bot.