PHP Envoyer E-mails


Recevez 1000 visiteurs par jour en provenance de Google
Téléchargez gratuitement notre guide explicatif
gagner argent

Envoyer E-mails par code PHP




Formation Affiliation Flash

Le PHP te permet d'envoyer des email directement par un code.

La fonction PHP mail()

La fonction PHP mail() est employée pour envoyer des email par un code.

Syntaxe

mail(to,subject,message,headers,parameters)



Ce qui signifie: mail(à, objet, message, en-têtes, paramètres)

Paramètre Description
to Requis. Spécifie le destinataire au quel on envoie l'email
subject Requis. Spécifie le sujet de l'email. Note : Ce paramètre ne peut contenir aucun caractères special(é è à etc. …)
message Requis. Définit le message à envoyer. Chaque ligne devrait être séparée avec un (\ n). Les lignes ne devraient pas dépasser 70 caractères
headers Facultatif. Spécifie les en-têtes additionnels, comme de, le cc, et le Bcc. Les en-têtes additionnels devraient être séparés avec un (\ r \ n)
parameters Facultatif. Spécifie un paramètre additionnel au programme


Note : Pour que les fonctions de courrier soient disponibles, le PHP exige un système installé et fonctionnant d'email. Le programme à employer est défini par les arrangements de configuration dans le dossier de php.ini.

Email simple de PHP



La manière la plus simple d'envoyer un email avec le PHP est d'envoyer un email avec des textes.
Dans l'exemple ci-dessous nous déclarons d'abord les variables (to, subject, message, headers, parameters ), puis nous employons ces variables dans la fonction mail() pour envoyer un email :

<?php
$to = "exemple@exemple.com";
$subject = "Test mail";
$message = "Bonjour, C’est un email teste .";
$from = "webmaster@exemple.com";
$headers = "De : $from";
mail($to,$subject,$message,$headers);
echo "Mail envoyé .";
?>

Formulaire pour envoyer email



Avec le PHP, vous pouvez créer un formulaire sur votre site Web pour envoyer un email. L'exemple ci-dessous envoie un message textuel à un email spécifique :
Code page mailform.php:

<html>
<body>

<?php
if (isset($_REQUEST['email']))
// si "email" est rempli, envoyez un courriel
{
//envoie email
$email = $_REQUEST['email'] ;
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
mail( "exemple@exemple.com", "Subject: $subject",$message, "From: $email" );
echo "Merci pour utiliser notre email";
}
else
// si "email" n’est pas remplis, afficher le formulaire
{
echo "<form method='post' action='mailform.php'>
Email: <input name='email' type='text' /><br />
Objet : <input name='subject' type='text' /><br />
Message:<br />
<textarea name='message' rows='15' cols='40'>
</textarea><br />
<input type='submit' />
</form>";
}
?>

</body>
</html>


Comment fonctionne l’exemple ci-dessus :
D'abord, on contrôle si le champ d'entrée d'email est complété.
Si non on affiche le formulaire.
S’il est complété ; envoyez l'email .

PHP E-mails sécurité



Il y a une faiblesse dans le manuscrit d'email de PHP dans le chapitre précédent.
Le problème avec le code ci-dessus est que les utilisateurs non autorisés peuvent insérer des données dans les en-têtes de courrier par l'intermédiaire du formulaire d'entrée.
Que se produit-il si l'utilisateur ajoute le texte suivant au champ d'entrée d'email dans le formulaire ?
exemple@exemple.com%0ACc : person2@exemple.com
%0ABcc : person3@exemple.com, person3@exemple.com,
anotherperson4@exemple.com, person5@exemple.com
%0ABTo : person6@exemple.com
La fonction mail() met le texte ci-dessus dans les en-têtes du courrier comme d'habitude, et maintenant l'en-tête a un cc supplémentaire : , Bcc : , et à : champ. Quand l'utilisateur clique sur le bouton de soumission, l'email sera envoyé à toutes les adresses ci-dessus !

PHP arrêt des injections d'email



La meilleure manière d'arrêter des injections d'email est de valider l'entrée.
Le code ci-dessous est le même que dans le chapitre précédent, mais maintenant nous avons ajouté un Validateur d'entrée qui vérifie le champ d'email sous la forme :

<html>
<body>
<?php
function spamcheck($field)
{
//filter_var() purifier email
//adresse utilise FILTER_SANITIZE_EMAIL
$field=filter_var($field, FILTER_SANITIZE_EMAIL);

//filter_var() valider email
//adresse utilise FILTER_VALIDATE_EMAIL
if(filter_var($field, FILTER_VALIDATE_EMAIL))
{
return TRUE;
}
else
{
return FALSE;
}
}

if (isset($_REQUEST['email']))
{//if "email" is filled out, proceed

//check if the email address is invalid
$mailcheck = spamcheck($_REQUEST['email']);
if ($mailcheck==FALSE)
{
echo "Entrée invalide";
}
else
//envoie email
$email = $_REQUEST['email'] ;
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
mail( "exemple@exemple.com", "Subject: $subject",$message, "From: $email" );
echo "Merci pour utiliser notre email";
}
else
// si "email" n’est pas remplis, afficher le formulaire
{
echo "<form method='post' action='mailform.php'>
Email: <input name='email' type='text' /><br />
Objet : <input name='subject' type='text' /><br />
Message:<br />
<textarea name='message' rows='15' cols='40'>
</textarea><br />
<input type='submit' />
</form>";
}
?>

</body>
</html>


Dans le code ci-dessus nous utilisons des filtres de PHP pour valider l'entrée :
Le filtre FILTER_SANITIZE_EMAIL enlève tous les caractères illégaux d'email
Le filtre de FILTER_VALIDATE_EMAIL valide la valeur comme email adresse
Vous pouvez lire plus au sujet des filtres dans notre chapitre filtre de PHP.



Cours precedent:
cours precedent  les sessions en php

    Sommaire de :
Le langage php

 Cours suivant:
Gestion d'erreur   cours suivant

location serveurs hébergeur de sites internet en France

purchase text links