nameservers=$serveurDeNom; $response = $resolver->query($domaine[1],'MX'); if ($response) { return true; } else { return false; } } function UpdateVirtualDB() { echo exec(BIN_POSTMAP.' '.FICHIERALIAS,$output,$return); } function AjouterAlias($alias,$email) { $fichier=fopen(FICHIERALIAS,'a+'); fputs($fichier, $alias.'@'.DOMAIN.' '.$email."\n"); fclose($fichier); UpdateVirtualDB(); } function SupprimerAlias($alias,$email) { file_put_contents(FICHIERALIAS, preg_replace('#\n\#[0-9]+ '.$alias.'@'.DOMAIN.' '.$email.'#U', '', file_get_contents(FICHIERALIAS)/*, 1*/)); file_put_contents(FICHIERALIAS, preg_replace('#\n'.$alias.'@'.DOMAIN.' '.$email.'#U', '', file_get_contents(FICHIERALIAS)/*, 1*/)); # http://www.siteduzero.com/forum-83-542138-p1-supprimer-une-ligne-d-un-fichier-texte-avec-regex.html UpdateVirtualDB(); } echo '

Email poubelle

Générer des emails poubelle sans contrainte de durée de vie.

'; if (isset($_REQUEST['Validemail'])) { if (preg_match('/#'.$_REQUEST['Validemail'].' [a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+ [a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+/', file_get_contents(FICHIERALIAS),$res)) { $data=explode(' ', $res[0]); $aliasZici=explode('@', $data[1]); $alias=$aliasZici[0]; $email=$data[2]; SupprimerAlias($alias,$email); AjouterAlias($alias,$email); echo '
Votre email poubelle '.$alias.'@'.DOMAIN.' > '.$email.' est maintenant actif
'; } else { echo '
Erreur : ID introuvable
'; } } else if (isset($_REQUEST['email']) && isset($_REQUEST['alias'])) { $alias=strtolower($_REQUEST['alias']); $email=strtolower($_REQUEST['email']); if (! filter_var($email, FILTER_VALIDATE_EMAIL)) { echo '
Erreur : Adresse email incorrect
'; } else if (! VerifMXemail($email)) { echo '
Erreur : Adresse email incorrect (2)
'; } else if (! preg_match('#^[\w.-]+$#',$alias)) { echo '
Erreur : email poubelle incorrect
'; } elseif (isset($_REQUEST['ajo'])) { if (preg_match('#\n'.$alias.'@'.DOMAIN.'#', file_get_contents(FICHIERALIAS)) || preg_match('#\n\#[0-9]+ '.$alias.'@'.DOMAIN.'#', file_get_contents(FICHIERALIAS))) { echo '
Erreur : cet email poubelle est déjà utilisé
'; } else { if (preg_match('#@'.DOMAIN.' '.$email.'$#', file_get_contents(FICHIERALIAS))) { AjouterAlias($alias,$email); echo '
Votre email poubelle '.$alias.'@'.DOMAIN.' > '.$email.' est maintenant actif
'; } else { $id=rand().date('U'); $alias_desactive='#'.$id.' '.$alias; AjouterAlias($alias_desactive,$email); # Envoi de l'email : if (!preg_match('#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#', $email)) { $passage_ligne = "\r\n"; } else { $passage_ligne = "\n"; } $header = 'From: '.EMAIL_FROM.$passage_ligne; $header.= 'MIME-Version: 1.0'.$passage_ligne; $message= 'Confirmation de la création de votre redirection email poubelle : '.$passage_ligne; $message= $alias.'@'.DOMAIN.' => '.$email.$passage_ligne; $message= 'Cliquer sur le lien ci-dessous pour confirmer : '.$passage_ligne; if (URLREWRITE_DEBUT && URLREWRITE_FIN) { $message.= "\t * ".URLREWRITE_DEBUT.$id.URLREWRITE_FIN.$passage_ligne; } else { $message.= "\t * ".URLPAGE.'?Validemail='.$id.$passage_ligne; } $message.= 'Pour supprimer cet email poubelle vous pouvez vous rendre sur le lien ci-dessou : '.$passage_ligne; if (URLREWRITE_DEBUT && URLREWRITE_FIN) { $message.= "\t * ".URLPAGE.$passage_ligne; } else { $message.= "\t * ".URLPAGE.'?sup=true&email='.$email.'&alias='.$alias.$passage_ligne; } mail($email,EMAIL_SUJET.$alias,$message,$header); echo '
Votre email ('.$email.') nous étant inconnu, une confirmation vous a été envoyé par email.
'; } } } else if (isset($_REQUEST['sup'])) { if (preg_match('#\n'.$alias.'@'.DOMAIN.' '.$email.'#', file_get_contents(FICHIERALIAS)) || preg_match('#\n\#[0-9]+ '.$alias.'@'.DOMAIN.' '.$email.'#', file_get_contents(FICHIERALIAS))) { SupprimerAlias($alias,$email); echo '
Votre email poubelle '.$alias.'@'.DOMAIN.' est maintenant supprimé !
'; } else { echo '
Erreur : l\'email poubelle n\'existe pas
'; } } } ?>
@

ou la redirection poubelle

Version - Créé par David Mercereau sous licence GNU GPL v3

En savoir plus...

Ce script est sous licence GPLv3, vous pouvez donc le télécharger et l'installer sur une autre plateforme

Téléchargement

Télécharger les sources de ce script : emailPoubelle.php & conf.php

Installer

Typiquement c'est un script à inclure dans une page entre les balises body

Le script a besoin de la lib pear Net_DNS

Le script utilise les virtual_alias_maps de postfix. Connectez vous en root

srv:~# vi /etc/postfix/main.cf
[...]
virtual_alias_maps = hash:/www/emailPoubelle/postfix/virtual
srv:~# touch /www/emailPoubelle/postfix/virtual
srv:~# /usr/sbin/postmap /www/emailPoubelle/postfix/virtual
srv:~# chown www-data /www/emailPoubelle/postfix/virtual
srv:~# chown www-data /www/emailPoubelle/postfix/virtual.db

Assurez vous que l'exécutable /usr/sbin/postmap soit accessible par l'utilisateur www-data

Changelog

Version 0.1.1 Version 0.1