mirror of
https://github.com/YunoHost-Apps/emailpoubelle_ynh.git
synced 2024-09-03 18:26:29 +02:00
Passage en version 0.2 - Net_DNS2, correction BUG (4), Ajout des mots interdits dans les alias (19)
This commit is contained in:
parent
e7d1293808
commit
f72989ba67
2 changed files with 70 additions and 39 deletions
38
conf.php
38
conf.php
|
@ -7,19 +7,39 @@
|
|||
// Home : http://zici.fr/emailPoubelle.html
|
||||
//-----------------------------------------------------------
|
||||
|
||||
#error_reporting(0);
|
||||
error_reporting(E_ALL);
|
||||
|
||||
define('VERSION', '0.1.1');
|
||||
define('VERSION', '0.2');
|
||||
|
||||
define('DOMAIN', 'zici.fr');
|
||||
|
||||
// Serveur DNS pour la résolution/vérification du nom de domaine
|
||||
define('NS1', 'ns1.fdn.org');
|
||||
define('NS2', '8.8.8.8');
|
||||
|
||||
define('BIN_POSTMAP', '/usr/sbin/postmap');
|
||||
if (basename($_SERVER['SCRIPT_FILENAME']) == 'emailPoubelle_dev.php') {
|
||||
# Dev
|
||||
define('DEBUG', true);
|
||||
error_reporting(E_ALL);
|
||||
|
||||
define('URLPAGE', 'http://zici.fr/emailPoubelle.html');
|
||||
define('FICHIERALIAS', './postfix/virtual_debug');
|
||||
|
||||
define('URLPAGE', 'http://www.zici.fr/emailPoubelle/emailPoubelle_dev.php');
|
||||
|
||||
// A indiquer si vous utiliser les URL's rewriting
|
||||
// Exemple avec un htaccess
|
||||
// RewriteRule ^EmailPoubell-([0-9]+)\.html$ index.php?page=emailPoubelle&Validemail=$1 [L]
|
||||
#define('URLREWRITE_DEBUT', 'http://www.zici.fr/EmailPoubell-');
|
||||
#define('URLREWRITE_FIN', '.html');
|
||||
// Désactiver
|
||||
define('URLREWRITE_DEBUT', false);
|
||||
define('URLREWRITE_FIN', false);
|
||||
} else {
|
||||
# Prod
|
||||
error_reporting(0);
|
||||
define('DEBUG', false);
|
||||
|
||||
define('FICHIERALIAS', './emailPoubelle/postfix/virtual');
|
||||
|
||||
define('URLPAGE', 'http://www.zici.fr/emailPoubelle.html');
|
||||
|
||||
// A indiquer si vous utiliser les URL's rewriting
|
||||
// Exemple avec un htaccess
|
||||
|
@ -29,11 +49,15 @@ define('URLREWRITE_FIN', '.html');
|
|||
// Désactiver
|
||||
# define('URLREWRITE_DEBUT', false);
|
||||
# define('URLREWRITE_FIN', false);
|
||||
}
|
||||
|
||||
define('FICHIERALIAS', './emailPoubelle/postfix/virtual');
|
||||
define('BIN_POSTMAP', '/usr/sbin/postmap');
|
||||
|
||||
// Email de confirmation
|
||||
define('EMAIL_SUJET', '[zici] [EmailPoubelle] Confirmation alias ');
|
||||
define('EMAIL_FROM', '"NO REPLAY emailPoubelle" <emailpoubelle@zici.fr>');
|
||||
|
||||
# Alisas interdit :
|
||||
$aliasInterditListe = array('root', 'mail', 'email', 'test', 'toto', 'www-data', 'www-owne', 'manager', 'admin', 'postmaster', 'MAILER-DAEMON', 'abuse', 'spam', 'backup', 'list', 'nobody', 'vmail', 'mysql', 'web', 'git');
|
||||
|
||||
?>
|
||||
|
|
|
@ -1,53 +1,58 @@
|
|||
<?php
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Emeail Poubelle
|
||||
// Email Poubelle
|
||||
// Licence : GNU GPL v3 : http://www.gnu.org/licenses/gpl.html
|
||||
// Créateur : David Mercereau - david [.] mercereau [aro] zici [.] fr
|
||||
// Home : http://poubelle.zici.fr
|
||||
// Date : 02/2012
|
||||
// Version : 0.1
|
||||
// Date : 08/2012
|
||||
// Version : 0.2
|
||||
// Dépendance : Postifx
|
||||
//-----------------------------------------------------------
|
||||
|
||||
include_once('./conf.php');
|
||||
|
||||
function VerifMXemail($email)
|
||||
{
|
||||
require_once 'Net/DNS.php';
|
||||
# Init
|
||||
if (!is_writable(FICHIERALIAS)) {
|
||||
exit('<div class="highlight-1">Erreur : le fichier d\'alias ('.FICHIERALIAS.') ne peut pas être écrit. Merci de contacter l\'administrateur</div>');
|
||||
}
|
||||
|
||||
function VerifMXemail($email) {
|
||||
require_once 'Net/DNS2.php';
|
||||
$domaine=explode('@', $email);
|
||||
$serveurDeNom=array(
|
||||
NS1
|
||||
);
|
||||
$resolver = new Net_DNS_Resolver();
|
||||
$resolver->nameservers=$serveurDeNom;
|
||||
$response = $resolver->query($domaine[1],'MX');
|
||||
if ($response) {
|
||||
$r = new Net_DNS2_Resolver(array('nameservers' => array(NS1, NS2)));
|
||||
try {
|
||||
$result = $r->query($domaine[1], 'MX');
|
||||
} catch(Net_DNS2_Exception $e) {
|
||||
return false;
|
||||
}
|
||||
if ($result->answer) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
function UpdateVirtualDB()
|
||||
{
|
||||
|
||||
function UpdateVirtualDB() {
|
||||
echo exec(BIN_POSTMAP.' '.FICHIERALIAS,$output,$return);
|
||||
}
|
||||
function AjouterAlias($alias,$email)
|
||||
{
|
||||
function AjouterAlias($alias,$email) {
|
||||
$fichier=fopen(FICHIERALIAS,'a+');
|
||||
fputs($fichier, $alias.'@'.DOMAIN.' '.$email."\n");
|
||||
fclose($fichier);
|
||||
UpdateVirtualDB();
|
||||
}
|
||||
|
||||
function SupprimerAlias($alias,$email)
|
||||
{
|
||||
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();
|
||||
}
|
||||
|
||||
if (DEBUG) {
|
||||
echo '<div class="highlight-2">Debug activé</div>';
|
||||
}
|
||||
|
||||
echo '<h1>Emails poubelle libre</h1>
|
||||
<p>Générer des emails poubelle sans contrainte de durée de vie. </p>';
|
||||
|
||||
|
@ -72,11 +77,13 @@ if (isset($_REQUEST['Validemail'])) {
|
|||
echo '<div class="highlight-1">Erreur : Adresse email incorrect (2)</div>';
|
||||
} else if (! preg_match('#^[\w.-]+$#',$alias)) {
|
||||
echo '<div class="highlight-1">Erreur : email poubelle incorrect</div>';
|
||||
} else if (in_array($alias, $aliasInterditListe)) {
|
||||
echo '<div class="highlight-1">Erreur : email poubelle interdit</div>';
|
||||
} 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 '<div class="highlight-1">Erreur : cet email poubelle est déjà utilisé</div>';
|
||||
} else {
|
||||
if (preg_match('#@'.DOMAIN.' '.$email.'$#', file_get_contents(FICHIERALIAS))) {
|
||||
if (preg_match('#\n[a-z0-9]+@'.DOMAIN.' '.$email.'#', file_get_contents(FICHIERALIAS))) {
|
||||
AjouterAlias($alias,$email);
|
||||
echo '<div class="highlight-3">Votre email poubelle <b>'.$alias.'@'.DOMAIN.' > '.$email.'</b> est maintenant actif</div>';
|
||||
} else {
|
||||
|
@ -130,4 +137,4 @@ if (isset($_REQUEST['Validemail'])) {
|
|||
<input class="button" type="submit" name="sup" value="Supprimer" /> la redirection poubelle
|
||||
</form>
|
||||
<p>Version <?= VERSION ?> - Créé par David Mercereau sous licence GNU GPL v3</p>
|
||||
<p>Télécharger et utiliser ce script sur le site du projet <a target="_blank" href="http://forge.zici.fr/projects/emailpoubelle">emailPoubelle.php</a></p>
|
||||
<p>Télécharger et utiliser ce script sur le site du projet <a target="_blank" href="http://forge.zici.fr/p/emailpoubelle-php/">emailPoubelle.php</a></p>
|
||||
|
|
Loading…
Reference in a new issue