---
title: "Formulaire pour l’abonnement / le désabonnement"
date: "2018-04-11"
categories:
- "listes-de-diffusion"
---
Un formulaire web pour l'abonnement/désabonnement à vos listes.
Pour qu’un utilisateur puisse s’abonner à une liste, la procédure habituelle consiste à envoyer un message au moteur qui gère la liste (sympa@mondomaine.delistes.tld) avec pour sujet :
`subscribe nomdelaliste Prénom Nom` (le « Prénom Nom » est facultatif)
Pour se désabonner, c’est presque la même chose ; le sujet du message doit être :
`unsubscribe nomdelaliste`
Il faut être attentif pour le désabonnement que l’adresse de courriel utilisée soit bien celle qui était abonnée.
Vous pouvez donc créer un lien pour l’abonnement :
`abonnement`
Ou pour le désabonnement :
`désabonnement`
Mais il peut être pratique aussi d’utiliser un formulaire (qu’on peut mettre en bas d’une page : « abonnement à notre newsletter »). Nous vous proposons une formulaire standard à configurer, que vous pouvez réutiliser, modifier, distribuer à votre guise.
```
Souscription à la liste de diffusion
/* configuration du script */
$domaine = "votre.domainedeliste.tld" ; // obligatoire : donner le nom du domaine de liste
$nombrelistes = 1 ; // obligatoire: remplir le nombre de listes définies ci-dessus
$liste1 = "nomdelaliste" ; // obligatoire : donner au moins 1 nom de liste
$liste2 = "nomdelaliste" ; // facultatif, si choix entre plusieurs listes
$liste3 = "nomdelaliste" ; // facultatif, si choix entre plusieurs listes
$liste4 = "nomdelaliste" ; // facultatif, si choix entre plusieurs listes
$liste5 = "nomdelaliste" ; // facultatif, si choix entre plusieurs listes
/* fin de la config */
// test de sécurité si le formulaire a été envoyé
if (isset($_POST["send"]) ) {
$secure = true ;
$from = $_POST["from"] ;
//test de l'adresse mail
if(!preg_match('/^[A-Z0-9._-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9]\.[A-Z.]{2,6}$/i',$from)) {
echo('Adresse de courriel Invalide
') ;
$secure = false ;
}
}
// Si le formulaire n'a pas été envoyé ou n'est pas secure, on l'affiche
if (!$secure) { ?>
} else {
// Si c'est ok - sécurisé et données
// on crée le nom complet
$nomcomplet = $_POST["prenom"] ." " .$_POST["nom"];
// puis le header du message
$headers = "From: ".$from."\n" ;
// puis les arguments
$to = "sympa@" .$domaine ;
$subject = "" ;
if ($_POST["action"] == "SUBSCRIBE") {
$message = $_POST["action"]." ".$_POST["liste"]." ".$nomcomplet;
} else {
$message = $_POST["action"]." ".$_POST["liste"];
}
// On envoie le mail :
if ( mail($to,$subject,$message,$headers) ) {
// Si le mail a bien été envoyé, message de confirmation
echo "Votre abonnement/désabonnement a bien été pris en compte.
";
} else {
// sinon, message d'erreur.
echo "Votre abonnement/désabonnement n\'a pas pu être envoyé.
";
}
} ?>
```