Envoyer des emails via php

Catégorie Découverte du langage PHP < Programmation PHP : Accueil du site

Vous êtes ici : Envoyer des emails via php

Publié par Mikiman

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 :

Code source :

mail(recepteur, sujet, message, parametres)


Voyons maintenant ce que sa donne dans une réelle utilisation :

Code source :

<?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.

Paramétrer l'envoi de l'email au format HTML


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.

Code source :

$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

Exemple de script d'envoi de mail


Je précise que ce script n'est pas complétement sécurisé.

Code source :


#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.