From 06746916d11082197f9e56f601506a96051c7637 Mon Sep 17 00:00:00 2001 From: "Pierre Habouzit (MadCoder" Date: Sun, 5 Dec 2004 21:40:38 +0000 Subject: [PATCH] modularize emails * QUite a lot of work. not really interesting. cleaning, renaming, configuration, ... * Still : delete newsletter_pattecassee in favor to a script. feed it with the emails, and it treats all alone. good boy. (bin/emails.broken.php) -> remains : work on sendmail.* + work on module git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-58 --- bin/emails.broken.php | 103 +++++++++++++++++++++ configs/mails.conf | 3 - htdocs/admin/newsletter_pattecassee.php | 83 ----------------- htdocs/admin/utilisateurs.php | 2 +- htdocs/alias.php | 10 +- htdocs/antispam.php | 2 +- htdocs/emails.php | 10 +- htdocs/{pattecassee.php => emails/broken.php} | 55 +++++------ htdocs/{routage-mail.php => emails/redirect.php} | 16 ++-- htdocs/inscription/step4.php | 2 +- ...mail.globals.inc.php => emails.globals.inc.php} | 18 +++- include/conf.d/emails.menu.inc.php | 9 ++ include/conf.d/tmp.menu.inc.php | 4 - include/{email.classes.inc.php => emails.inc.php} | 16 ++++ include/validations.inc.php | 4 +- include/validations/aliases.inc.php | 13 ++- install.d/{mail => emails}/files | 17 ++-- templates/admin/newsletter_pattecassee.tpl | 76 --------------- templates/alias.tpl | 8 +- templates/emails.tpl | 31 +++---- templates/{pattecassee.tpl => emails/broken.tpl} | 30 +++--- .../{routage-mail.tpl => emails/redirect.tpl} | 21 +++-- templates/include/form.valid.aliases.tpl | 2 +- templates/mails/pattecasser.nl.tpl | 38 -------- templates/preferences.tpl.d/20.alias.tpl | 6 +- 25 files changed, 261 insertions(+), 318 deletions(-) create mode 100644 bin/emails.broken.php delete mode 100644 htdocs/admin/newsletter_pattecassee.php rename htdocs/{pattecassee.php => emails/broken.php} (67%) rename htdocs/{routage-mail.php => emails/redirect.php} (86%) rename include/conf.d/{mail.globals.inc.php => emails.globals.inc.php} (81%) create mode 100644 include/conf.d/emails.menu.inc.php rename include/{email.classes.inc.php => emails.inc.php} (95%) rename install.d/{mail => emails}/files (58%) delete mode 100644 templates/admin/newsletter_pattecassee.tpl rename templates/{pattecassee.tpl => emails/broken.tpl} (83%) rename templates/{routage-mail.tpl => emails/redirect.tpl} (87%) delete mode 100644 templates/mails/pattecasser.nl.tpl diff --git a/bin/emails.broken.php b/bin/emails.broken.php new file mode 100644 index 0000000..70652df --- /dev/null +++ b/bin/emails.broken.php @@ -0,0 +1,103 @@ +db->query( + "SELECT e1.uid, e1.panne != 0 AS panne, count(e2.uid) AS nb_mails, u.nom, u.prenom, u.promo, a.alias + FROM emails AS e1 + LEFT JOIN emails AS e2 ON (e1.uid = e2.uid AND FIND_IN_SET('active', e2.flags) AND e1.email != e2.email) + INNER JOIN auth_user_md5 AS u ON (e1.uid = u.user_id) + INNER JOIN aliases AS a ON (u.user_id = a.id AND FIND_IN_SET('bestalias',a.flags)) + WHERE e1.email ='$email' + GROUP BY e1.uid"); + if ($x = mysql_fetch_assoc($sel)) { + if (!$x['panne']) { + $globals->db->query("UPDATE emails SET panne='".date("Y-m-d")."' WHERE email = '".$email."'"); + } + + if (empty($x['nb_mails'])) { + echo "$email : seule adresse active de {$x['prenom']} {$x['nom']}\n"; + } else { + $message = " Bonjour ! + + Nous t'écrivons car lors de l'envoi de la lettre d'information mensuelle +de Polytechnique.org à ton adresse polytechnicienne : + + {$x['alias']}@polytechnique.org, + +l'adresse {$email}, sur laquelle tu rediriges ton courrier, ne +fonctionnait pas. + + Estimant que cette information serait susceptible de t'intéresser, nous +avons préféré t'en informer. Il n'est pas impossible qu'il ne s'agisse que +d'une panne temporaire. Si tu souhaites changer la liste des adresses sur +lesquelles tu reçois le courrier qui t'es envoyé à ton adresse +polytechnicienne, il te suffit de te rendre sur la page : + + {$globals->baseurl}/emails/redirect.php + + + A bientôt sur Polytechnique.org ! + L'équipe d'administration + +--------------------------------------------------------------------------- + + PS : si jamais tu ne disposes plus du mot de passe te permettant +d'accéder au site, rends toi sur la page + + {$globals->baseurl}/recovery.php + +elle te permettra de créer un nouveau mot de passe après avoir rentré ton +login ({$x['alias']}) et ta date de naissance !"; + + require_once("diogenes.hermes.inc.php"); + $mail = new HermesMailer(); + $mail->setFrom('"Polytechnique.org" '); + $mail->addTo("\"{$x['prenom']} {$x['nom']}\" <{$x['alias']}@polytechnique.org>"); + $mail->setSubject("Une de tes adresse de redirection Polytechnique.org ne marche plus !!"); + $mail->setTxtBody($message); + $mail->send(); + echo "$email : mail envoyé\n"; + } + } else { + echo "$email : cette addresse n'est pas dans la base\n"; + } +} + +?> diff --git a/configs/mails.conf b/configs/mails.conf index 66ca03a..a4b1661 100644 --- a/configs/mails.conf +++ b/configs/mails.conf @@ -26,9 +26,6 @@ cc="Equipe Polytechnique.org" from="Equipe Polytechnique.org" cc="Equipe Polytechnique.org" -[pattecassee_nl] -from=Polytechnique.org - [marketing_relance] from=Pre-Inscription diff --git a/htdocs/admin/newsletter_pattecassee.php b/htdocs/admin/newsletter_pattecassee.php deleted file mode 100644 index 18032db..0000000 --- a/htdocs/admin/newsletter_pattecassee.php +++ /dev/null @@ -1,83 +0,0 @@ -db->query( - "SELECT a.alias AS forlife - FROM emails AS e - INNER JOIN auth_user_md5 AS u ON e.uid = u.user_id - INNER JOIN aliases AS a ON (u.user_id = a.id AND a.type='a_vie') - WHERE e.email='$email'"); - - $mailer = new XOrgMailer('templates/mails/pattecasser.nl.tpl'); - $mailer->assign('email', $email); - - if (list($dest) = mysql_fetch_row($sel)) { - $mailer->assign('dest', $dest); - $mailer->send(); - $page->assign('erreur', "

Mail envoyé ! :o)

"); - } -} else if (array_key_exists('email', $_POST)) { - $email = valide_email($_POST['email']); - $sel = $globals->db->query( - "SELECT e.uid, e.panne, u.nom, u.prenom, u.promo, a.alias AS forlife - FROM emails AS e - INNER JOIN auth_user_md5 AS u ON e.uid = u.user_id - INNER JOIN aliases AS a ON (u.user_id = a.id AND a.type='a_vie') - WHERE e.email = '$email'"); - if (list($puid, $ppanne, $pnom, $pprenom, $ppromo, $pforlife) = mysql_fetch_row($sel)) { - // on écrit dans la base que l'adresse est cassée - if ($ppanne == '0000-00-00') - $globals->db->query("UPDATE emails SET panne='".date("Y-m-d")."' WHERE email = '$email'"); - // on regarde s'il y a d'autres redirections actives - $sel = $globals->db->query("SELECT * FROM emails WHERE uid = " . $puid . " AND FIND_IN_SET('active', flags) AND email != '$email'"); - $nb_emails = mysql_num_rows($sel); - $page->assign('nb_emails', $nb_emails); - $page->assign('forlife', $pforlife); - $page->assign('prenom', $pprenom); - $page->assign('nom', $pnom); - $page->assign('promo', $ppromo); - } else - $page->assign('no_more', 1); - $page->assign('email', $email); -} - -$page->run(); -?> diff --git a/htdocs/admin/utilisateurs.php b/htdocs/admin/utilisateurs.php index d109956..67dcc75 100644 --- a/htdocs/admin/utilisateurs.php +++ b/htdocs/admin/utilisateurs.php @@ -21,7 +21,7 @@ require_once("xorg.inc.php"); new_admin_page('admin/utilisateurs.tpl'); -require_once("email.classes.inc.php"); +require_once("emails.inc.php"); /* * LOGS de l'utilisateur diff --git a/htdocs/alias.php b/htdocs/alias.php index 179b6b1..17579cc 100644 --- a/htdocs/alias.php +++ b/htdocs/alias.php @@ -30,7 +30,9 @@ $page->assign('demande', AliasReq::get_unique_request($_SESSION['uid'])); $sql = "SELECT alias FROM virtual INNER JOIN virtual_redirect USING(vid) - WHERE redirect='{$_SESSION['forlife']}@m4x.org' AND alias LIKE '%@melix.net'"; + WHERE ( redirect='{$_SESSION['forlife']}@{$globals->mail->domain}' + OR redirect='{$_SESSION['forlife']}@{$globals->mail->domain2}' ) + AND alias LIKE '%@{$globals->mail->alias_dom}'"; if($result = $globals->db->query($sql)) { list($aliases) = mysql_fetch_row($result); mysql_free_result($result); @@ -54,9 +56,9 @@ if (isset($_REQUEST['alias']) and isset($_REQUEST['raison'])) { $page->run('error'); } else { //vérifier que l'alias n'est pas déja pris - $result = $globals->db->query("SELECT 1 FROM virtual WHERE alias='$alias@melix.net'"); + $result = $globals->db->query("SELECT 1 FROM virtual WHERE alias='$alias@{$globals->mail->alias_dom}'"); if (mysql_num_rows($result)>0) { - $page->assign('error', "L'alias $alias@melix.net a déja été attribué. + $page->assign('error', "L'alias $alias@{$globals->mail->alias_dom} a déja été attribué. Tu ne peux donc pas l'obtenir."); $page->run('error'); } @@ -65,7 +67,7 @@ if (isset($_REQUEST['alias']) and isset($_REQUEST['raison'])) { $it = new ValidateIterator (); while($req = $it->next()) { if ($req->type == "alias" and $req->alias == $alias) { - $page->assign('error', "L'alias $alias@melix.net a déja été demandé. + $page->assign('error', "L'alias $alias@{$globals->mail->alias_dom} a déja été demandé. Tu ne peux donc pas l'obtenir pour l'instant."); $page->run('error'); } diff --git a/htdocs/antispam.php b/htdocs/antispam.php index 5306fe3..cfb6816 100644 --- a/htdocs/antispam.php +++ b/htdocs/antispam.php @@ -21,7 +21,7 @@ require_once("xorg.inc.php"); new_skinned_page('antispam.tpl', AUTH_MDP); -require_once("email.classes.inc.php"); +require_once("emails.inc.php"); $bogo = new Bogo($_SESSION['uid']); diff --git a/htdocs/emails.php b/htdocs/emails.php index c543e35..4fb953e 100644 --- a/htdocs/emails.php +++ b/htdocs/emails.php @@ -47,10 +47,14 @@ $page->mysql_assign($sql, 'mails', 'nb_mails'); $sql = "SELECT alias FROM virtual AS v INNER JOIN virtual_redirect AS vr USING(vid) - WHERE redirect='{$_SESSION['forlife']}@m4x.org' AND alias LIKE '%@melix.net'"; + WHERE ( redirect='{$_SESSION['forlife']}@{$globals->mail->domain}' + OR redirect='{$_SESSION['forlife']}@{$globals->mail->domain2}' ) + AND alias LIKE '%@{$globals->mail->alias_dom}'"; $result = $globals->db->query($sql); -if ($result && list($aliases) = mysql_fetch_row($result)) - $page->assign('melix', substr($aliases,0,-3)); +if ($result && list($aliases) = mysql_fetch_row($result)) { + list($melix) = split('@', $aliases); + $page->assign('melix', $melix); +} mysql_free_result($result); $page->run(); diff --git a/htdocs/pattecassee.php b/htdocs/emails/broken.php similarity index 67% rename from htdocs/pattecassee.php rename to htdocs/emails/broken.php index 3d6d7fa..98cf700 100644 --- a/htdocs/pattecassee.php +++ b/htdocs/emails/broken.php @@ -19,31 +19,20 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ -require_once("xorg.inc.php"); -new_skinned_page('pattecassee.tpl',AUTH_COOKIE); +require_once('xorg.inc.php'); +new_skinned_page('emails/broken.tpl',AUTH_COOKIE); +require_once('emails.inc.php'); -function valide_email($str) { - - $em = trim(rtrim($str)); - $em = str_replace("<", "", $em); - $em = str_replace(">", "", $em); - list($ident, $dom) = explode("@", $em); - if ($dom == "m4x.org" or $dom == "polytechnique.org") { - list($ident1) = explode("_", $ident); - list($ident) = explode("+", $ident1); - } - return $ident . "@" . $dom; -} - if (array_key_exists('email', $_GET) && array_key_exists('action', $_GET)) { $email = valide_email($_GET['email']); // vérifications d'usage $sel = $globals->db->query( - "SELECT e.uid, a.alias - FROM emails AS e - INNER JOIN auth_user_md5 AS u ON e.uid = u.user_id - INNER JOIN aliases AS a ON (e.uid = a.id AND type!='homonyme') - WHERE e.email='$email'"); + "SELECT e.uid, a.alias + FROM emails AS e + INNER JOIN auth_user_md5 AS u ON e.uid = u.user_id + INNER JOIN aliases AS a ON (e.uid = a.id AND type!='homonyme' AND FIND_IN_SET('bestalias',a.flags)) + WHERE e.email='$email'"); + if (list($uid, $dest) = mysql_fetch_row($sel)) { // envoi du mail $message = "Bonjour ! @@ -55,11 +44,11 @@ indiquant que ton adresse de redirection $email ne fonctionnait plus ! Nous te suggérons de vérifier cette adresse, et le cas échéant de mettre -à jour sur le site tes adresses +à jour sur le site <{$globals->baseurl}/emails.php> tes adresses de redirection... Pour plus de rensignements sur le service de patte cassée, n'hésites pas à -consulter la page . +consulter la page <{$globals->baseurl}/emails/broken.php>. A bientôt sur Polytechnique.org ! @@ -67,8 +56,8 @@ L' require_once("diogenes.hermes.inc.php"); $mail = new HermesMailer(); - $mail->setFrom('Polytechnique.org '); - $mail->addTo("<$dest@polytechnique.org>"); + $mail->setFrom('"Polytechnique.org" '); + $mail->addTo("$dest@polytechnique.org"); $mail->setSubject("Une de tes adresse de redirection Polytechnique.org ne marche plus !!"); $mail->setTxtBody($message); $mail->send(); @@ -77,17 +66,19 @@ L' } elseif (array_key_exists('email', $_POST)) { $email = valide_email($_POST['email']); $page->assign('email',$email); - $sel = $globals->db->query("SELECT e1.uid, e1.panne != 0 AS panne, count(e2.uid) AS nb_mails, u.nom, u.prenom, u.promo - FROM emails as e1 - LEFT JOIN emails as e2 ON(e1.uid = e2.uid AND FIND_IN_SET('active', e2.flags) AND e1.email != e2.email) - INNER JOIN auth_user_md5 as u ON(e1.uid = u.user_id) - WHERE e1.email ='$email' - GROUP BY e1.uid"); + $sel = $globals->db->query( + "SELECT e1.uid, e1.panne != 0 AS panne, count(e2.uid) AS nb_mails, u.nom, u.prenom, u.promo + FROM emails as e1 + LEFT JOIN emails as e2 ON(e1.uid = e2.uid AND FIND_IN_SET('active', e2.flags) AND e1.email != e2.email) + INNER JOIN auth_user_md5 as u ON(e1.uid = u.user_id) + WHERE e1.email ='$email' + GROUP BY e1.uid"); if ($x = mysql_fetch_assoc($sel)) { // on écrit dans la base que l'adresse est cassée - if (!$x['panne']) + if (!$x['panne']) { $globals->db->query("UPDATE emails SET panne='".date("Y-m-d")."' WHERE email = '".$email."'"); - $page->assign_by_ref('x',$x); + } + $page->assign_by_ref('x', $x); } } diff --git a/htdocs/routage-mail.php b/htdocs/emails/redirect.php similarity index 86% rename from htdocs/routage-mail.php rename to htdocs/emails/redirect.php index 74ef685..c1d7e7e 100644 --- a/htdocs/routage-mail.php +++ b/htdocs/emails/redirect.php @@ -20,8 +20,8 @@ ***************************************************************************/ require_once("xorg.inc.php"); -new_skinned_page('routage-mail.tpl',AUTH_MDP); -require_once("email.classes.inc.php"); +new_skinned_page('emails/redirect.tpl',AUTH_MDP); +require_once("emails.inc.php"); $redirect = new Redirect($_SESSION['uid']); @@ -44,11 +44,15 @@ if (isset($_REQUEST['emailop'])) { $sql = "SELECT alias FROM virtual INNER JOIN virtual_redirect USING(vid) - WHERE redirect='{$_SESSION['forlife']}@m4x.org' AND alias LIKE '%@melix.net'"; + WHERE ( redirect='{$_SESSION['forlife']}@{$globals->mail->domain}' + OR redirect='{$_SESSION['forlife']}@{$globals->mail->domain2}' ) + AND alias LIKE '%@{$globals->mail->alias_dom}'"; $res = $globals->db->query($sql); -list($grx) = mysql_fetch_row($res); -$page->assign('grx',$grx); -$page->assign('domaine',substr($grx,0,-3)); +if (mysql_num_rows($res)) { + list($melix) = mysql_fetch_row($res); + list($melix) = split('@', $melix); + $page->assign('melix',$melix); +} $page->mysql_assign("SELECT alias,expire FROM aliases diff --git a/htdocs/inscription/step4.php b/htdocs/inscription/step4.php index fae9777..549f173 100644 --- a/htdocs/inscription/step4.php +++ b/htdocs/inscription/step4.php @@ -88,7 +88,7 @@ if (!empty($_REQUEST['ref'])) { $logger->log("inscription",$email); /****************** insertion de l'email dans la table emails + bogofilter ***/ - require_once("email.classes.inc.php"); + require_once("emails.inc.php"); $redirect = new Redirect($uid); $redirect->add_email($email); fix_bestalias($uid); diff --git a/include/conf.d/mail.globals.inc.php b/include/conf.d/emails.globals.inc.php similarity index 81% rename from include/conf.d/mail.globals.inc.php rename to include/conf.d/emails.globals.inc.php index 79e1b42..5362562 100644 --- a/include/conf.d/mail.globals.inc.php +++ b/include/conf.d/emails.globals.inc.php @@ -23,8 +23,22 @@ class MailConfig { - var $domain = ''; - var $domain2 = ''; + var $domain = ''; + var $domain2 = ''; + + var $alias_dom = ''; + var $alias_dom2 = ''; + + var $send_form = true; + + function shorter_domain() + { + if (empty($this->domain2) || strlen($this->domain2)>strlen($this->domain)) { + return $this->domain; + } else { + return $this->domain2; + } + } } // }}} diff --git a/include/conf.d/emails.menu.inc.php b/include/conf.d/emails.menu.inc.php new file mode 100644 index 0000000..cf4367b --- /dev/null +++ b/include/conf.d/emails.menu.inc.php @@ -0,0 +1,9 @@ +addPrivateEntry(XOM_CUSTOM, 00, 'Mes emails', 'emails.php'); + +if ($globals->mail->send_form) { + $this->addPrivateEntry(XOM_SERVICES, 00, 'Envoyer un mail', 'sendmail.php'); +} + +$this->addPrivateEntry(XOM_SERVICES, 40, 'Patte cassée', 'emails/broken.php'); +?> diff --git a/include/conf.d/tmp.menu.inc.php b/include/conf.d/tmp.menu.inc.php index 7af69ab..4cd0a15 100644 --- a/include/conf.d/tmp.menu.inc.php +++ b/include/conf.d/tmp.menu.inc.php @@ -1,16 +1,12 @@ addPrivateEntry(XOM_NO, 10, 'Page d\'accueil', 'login.php'); -$this->addPrivateEntry(XOM_CUSTOM, 00, 'Mes emails', 'emails.php'); $this->addPrivateEntry(XOM_CUSTOM, 10, 'Mon profil', 'profil.php'); $this->addPrivateEntry(XOM_CUSTOM, 20, 'Mes contacts', 'carnet/mescontacts.php'); $this->addPrivateEntry(XOM_CUSTOM, 30, 'Mon carnet', 'carnet/'); $this->addPrivateEntry(XOM_CUSTOM, 40, 'Mon mot de passe', 'motdepassemd5.php'); $this->addPrivateEntry(XOM_CUSTOM, 50, 'Mes préférences', 'preferences.php'); -$this->addPrivateEntry(XOM_SERVICES, 00, 'Envoyer un mail', 'sendmail.php'); -$this->addPrivateEntry(XOM_SERVICES, 40, 'Patte cassée', 'pattecassee.php'); - $this->addPrivateEntry(XOM_GROUPS, 10, 'Trombi promo', 'trombipromo.php'); $this->addPrivateEntry(XOM_GROUPS, 20, 'Conseil Pro.', 'referent.php'); $this->addPrivateEntry(XOM_GROUPS, 30, 'Groupes X', 'http://www.polytechnique.net/plan.php'); diff --git a/include/email.classes.inc.php b/include/emails.inc.php similarity index 95% rename from include/email.classes.inc.php rename to include/emails.inc.php index a20a72e..7081cdc 100644 --- a/include/email.classes.inc.php +++ b/include/emails.inc.php @@ -70,6 +70,22 @@ function fix_bestalias($uid) } // }}} +// {{{ function valide_email() + +function valide_email($str) +{ + $em = trim(rtrim($str)); + $em = str_replace('<', '', $em); + $em = str_replace('>', '', $em); + list($ident, $dom) = explode('@', $em); + if ($dom == $globals->mail->domain or $dom == $globals->mail->domain2) { + list($ident1) = explode('_', $ident); + list($ident) = explode('+', $ident1); + } + return $ident . '@' . $dom; +} + +// }}} // {{{ class Bogo class Bogo diff --git a/include/validations.inc.php b/include/validations.inc.php index 5306e1f..c0c504f 100644 --- a/include/validations.inc.php +++ b/include/validations.inc.php @@ -175,8 +175,8 @@ class Validate $globals->db->query("DELETE FROM requests WHERE user_id='{$this->uid}' AND type='{$this->type}'"); } - $globals->db->query("INSERT INTO requests (user_id, type, user_id) - VALUES ('{$this->uid}', '{$this->type}, '".addslashes(serialize($this))."')"); + $globals->db->query("INSERT INTO requests (user_id, type, data) + VALUES ('{$this->uid}', '{$this->type}', '".addslashes(serialize($this))."')"); // au cas où l'objet est réutilisé après un commit, il faut mettre son stamp à jour $sql = $globals->db->query("SELECT MAX(stamp) FROM requests diff --git a/include/validations/aliases.inc.php b/include/validations/aliases.inc.php index 650bcc7..b0d3fa3 100644 --- a/include/validations/aliases.inc.php +++ b/include/validations/aliases.inc.php @@ -56,8 +56,9 @@ class AliasReq extends Validate $sql = $globals->db->query(" SELECT v.alias FROM virtual_redirect AS vr - INNER JOIN virtual AS v ON (v.vid=vr.vid AND v.alias LIKE '%@melix.net') - WHERE vr.redirect='{$this->forlife}@m4x.org'"); + INNER JOIN virtual AS v ON (v.vid=vr.vid AND v.alias LIKE '%@{$globals->mail->alias_dom}') + WHERE vr.redirect='{$this->forlife}@{$globals->mail->domain}' + OR vr.redirect='{$this->forlife}@{$globals->mail->domain2}'"); if (mysql_num_rows($sql)) { list($this->old) = mysql_fetch_row($sql); } @@ -113,12 +114,14 @@ class AliasReq extends Validate global $globals; if ($this->old) { - $globals->db->query("UPDATE virtual SET alias='{$this->alias}@melix.net' WHERE alias='{$this->old}'"); + $globals->db->query("UPDATE virtual SET alias='{$this->alias}@{$globals->mail->alias_dom}' WHERE alias='{$this->old}'"); } else { - $globals->db->query("INSERT INTO virtual SET alias='{$this->alias}@melix.net',type='user'"); + $globals->db->query("INSERT INTO virtual SET alias='{$this->alias}@{$globals->mail->alias_dom}',type='user'"); $vid = mysql_insert_id(); - $globals->db->query("INSERT INTO virtual_redirect (vid,redirect) VALUES ($vid,'{$this->forlife}@m4x.org')"); + require_once('emails.inc.php'); + $dom = $globals->mail->shorter_domain(); + $globals->db->query("INSERT INTO virtual_redirect (vid,redirect) VALUES ($vid,'{$this->forlife}@$dom')"); } } diff --git a/install.d/mail/files b/install.d/emails/files similarity index 58% rename from install.d/mail/files rename to install.d/emails/files index ca25672..4863df1 100644 --- a/install.d/mail/files +++ b/install.d/emails/files @@ -1,21 +1,20 @@ -htdocs/admin/newsletter_pattecassee.php +bin/emails.broken.php htdocs/alias.php htdocs/antispam.php +htdocs/emails/broken.php htdocs/emails.php -htdocs/pattecassee.php -htdocs/routage-mail.php -htdocs/sendmail.php -include/email.classes.inc.php +htdocs/emails/redirect.php +include/emails.inc.php include/validations/aliases.inc.php -templates/admin/newsletter_pattecassee.tpl templates/alias.tpl templates/antispam.tpl +templates/emails/redirect.tpl templates/emails.tpl +templates/emailx/broken.tpl templates/include/form.valid.aliases.tpl -templates/mails/pattecasser.nl.tpl templates/mails/valid.alias.tpl -templates/pattecassee.tpl templates/preferences.tpl.d/10.mails.tpl templates/preferences.tpl.d/20.alias.tpl -templates/routage-mail.tpl + +htdocs/sendmail.php templates/sendmail.tpl diff --git a/templates/admin/newsletter_pattecassee.tpl b/templates/admin/newsletter_pattecassee.tpl deleted file mode 100644 index 7f3a728..0000000 --- a/templates/admin/newsletter_pattecassee.tpl +++ /dev/null @@ -1,76 +0,0 @@ -{*************************************************************************** - * Copyright (C) 2003-2004 Polytechnique.org * - * http://opensource.polytechnique.org/ * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the Free Software * - * Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - ***************************************************************************} - - -

- Vérifier une patte cassée suite à l'envoi de la newsletter -

- -{dynamic} - -{$erreur} - -{if $smarty.post.email} - -{if $no_more} -

- Désolé mais plus personne n'utilise l'adresse {$email} comme adresse de redirection. - Il est donc probable que ce problème de redirection ait été corrigé. -

-{elseif $nb_emails} -

- {"$prenom $nom (X$promo)"} - a à l'heure actuelle {$nb_emails} adresse(s) email(s) de redirection active(s) - en dehors de celle que tu as indiquée. - Cela ne veut pas forcément dire qu'il les avait déjà activées - lorsque la newsletter a été envoyée, mais c'est fort probable. -

-

- Pour lui envoyer un mail qui l'avertira de son adresse en panne, - il suffit de cliquer ! -

-{else} -

- Désolé, mais {"$prenom $nom (X$promo)"}, - n'a actuellement aucune adresse email de redirection active - autre que celle que tu viens de rentrer. - L'idéal serait de contacter son kessier de promo pour l'en avertir - et essayer de retrouver la trace de ce camarade !! -

-{/if} - -{/if} - -{/dynamic} - -

-Rentre dans la zone de saisie ci-dessous l'adresse email qui est revenue -en erreur suite à la distribution de la newsletter : -

-
-
- - - - -
Adresse email défectueuse
-
- -{* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/alias.tpl b/templates/alias.tpl index 67a0ed6..7a04952 100644 --- a/templates/alias.tpl +++ b/templates/alias.tpl @@ -21,8 +21,8 @@ {if $success}

- a demande de création des alias {dyn s=$success}@melix.net et - {dyn s=$success}@melix.org a bien été enregistrée. Après + a demande de création des alias {dyn s=$success}@{#globals.mail.alias_dom#} et + {dyn s=$success}@{#globals.mail.alias_dom2#} a bien été enregistrée. Après vérification, tu recevras un mail te signalant l'ouverture de ces adresses.

@@ -43,7 +43,7 @@

Pour de plus amples informations sur ce service, nous t'invitons à consulter - cette documentation qui répondra + cette documentation qui répondra sans doute à toutes tes questions

@@ -71,7 +71,7 @@ Alias demandé : - @melix.net et @melix.org + @{#globals.mail.alias_dom#} et @{#globals.mail.alias_dom2#} Brève explication : diff --git a/templates/emails.tpl b/templates/emails.tpl index 78a5a6e..ccc946c 100644 --- a/templates/emails.tpl +++ b/templates/emails.tpl @@ -36,7 +36,7 @@
{foreach from=$aliases item=a} - {if $a.a_vie}(*){/if} {$a.alias}@polytechnique.org et @m4x.org + {if $a.a_vie}(*){/if} {$a.alias}@{#globals.mail.domain#} et @{#globals.mail.domain2#} {if $a.expire}(expire le {$a.expire|date_format:"%d %b %Y"}){/if}
{/foreach} @@ -50,21 +50,15 @@ (M4X signifie mail for X, son intérêt est de te doter d'une adresse à vie - moins "voyante" que l'adresse @polytechnique.org). - - - - - Elles seront prochainement complétées d'une adresse @polytechnique.edu, - plus lisible dans les pays du monde où "Polytechnique" n'évoque pas grand chose, - .edu étant le suffixe propre aux universités et établissements d'enseignement supérieur. + moins "voyante" que l'adresse @{#globals.mail.domain#}).

-(*) l'adresse email marquée d'une (*) t'est réservée pour une période 100 ans après ton entrée à l'X (dans ton cas, jusqu'en {$smarty.session.promo+100}). -Les autres te sont attribuées a priori à vie, sauf si tu venais à avoir un homonyme X. Dans ce cas, ni ton homonyme ni toi-même n'auriez d'autres adresses que celles de la forme prenom.nom.promo@polytechnique.org. +(*) l'adresse email marquée d'une (*) t'est réservée pour une période 100 ans après ton entrée à l'X (dans ton cas, jusqu'en +{$smarty.session.promo+100}). Les autres te sont attribuées a priori à vie, sauf si tu venais à avoir un homonyme X. Dans ce cas, ni ton +homonyme ni toi-même n'auriez d'autres adresses que celles de la forme prenom.nom.promo@{#globals.mail.domain#}.

@@ -84,7 +78,7 @@ Les autres te sont attribu {/section} Si tu souhaites modifier ce reroutage de ton courrier, - il te suffit de te rendre ici ! + il te suffit de te rendre ici ! @@ -114,22 +108,23 @@ Les autres te sont attribu - + diff --git a/templates/pattecassee.tpl b/templates/emails/broken.tpl similarity index 83% rename from templates/pattecassee.tpl rename to templates/emails/broken.tpl index 771f1bb..0b55606 100644 --- a/templates/pattecassee.tpl +++ b/templates/emails/broken.tpl @@ -19,30 +19,30 @@ ***************************************************************************} -{dynamic on="0$erreur"} +{dynamic} + +{if $erreur}

{$erreur}

-{/dynamic} +{/if} -

- Vérifier une patte cassée -

+

Vérifier une patte cassée

-{dynamic} {if $x && $x.nb_mails} -

- Ton correspondant a à l'heure actuelle {$x.nb_mails} adresse(s) email(s) de redirection active(s) - en dehors de celle que tu nous as communiquée. Cela ne veut pas forcément dire qu'il les avait +

+ Ton correspondant a à l'heure actuelle {$x.nb_mails} adresse(s) email(s) de redirection active(s) + en dehors de celle que tu nous as communiquée. Cela ne veut pas forcément dire qu'il les avait déjà activées lorsque tu as envoyé ton email, mais c'est fort probable.

-

+

Nous pensons qu'il serait une bonne idée de le prévenir que cette adresse email ne fonctionne plus. Si tu veux que nous lui envoyions un mail automatique de ta part pour le prévenir, - clique sur ce lien. + clique sur ce lien.

{elseif $x} -

+

Désolé, mais ton correspondant, {$x.prenom} {$x.nom} (X{$x.promo}), - n'a actuellement aucune adresse email de redirection active autre que celle que tu viens de rentrer. + n'a actuellement aucune adresse email de redirection + active autre que celle que tu viens de rentrer. Nous t'invitons à prendre contact avec lui autrement que par email, l'idéal étant de l'informer si possible que sa patte Polytechnique.org est cassée...!

@@ -67,7 +67,7 @@

Pour plus d'explications concernant cette page, nous t'invitons à consulter - la documentation suivante + la documentation suivante

Rentre dans la zone de saisie ci-dessous l'adresse email à laquelle ton @@ -83,7 +83,7 @@

- + diff --git a/templates/routage-mail.tpl b/templates/emails/redirect.tpl similarity index 87% rename from templates/routage-mail.tpl rename to templates/emails/redirect.tpl index 4a99f5b..defd1f9 100644 --- a/templates/routage-mail.tpl +++ b/templates/emails/redirect.tpl @@ -22,7 +22,7 @@ {if $retour == $smarty.const.ERROR_INACTIVE_REDIRECTION}

Tu ne peux pas avoir aucune adresse de redirection active, sinon ton adresse - {$smarty.session.forlife}@polytechnique.org ne fonctionnerait plus. + {$smarty.session.forlife}@{#globals.mail.domain#} ne fonctionnerait plus.

{/if} {if $retour == $smarty.const.ERROR_INVALID_EMAIL} @@ -32,9 +32,9 @@ {/if} {if $retour == $smarty.const.ERROR_LOOP_EMAIL}

- Erreur: {$smarty.session.forlife}@polytechnique.org doit renvoyer vers un email + Erreur: {$smarty.session.forlife}@{#globals.mail.domain#} doit renvoyer vers un email existant valide. En particulier, il ne peut pas être renvoyé vers lui-même, - ni son équivalent en m4x.org, ni vers son équivalent polytechnique.edu. + ni son équivalent en {#globals.mail.domain2#}.

{/if} {if $mtic == 1} @@ -51,10 +51,15 @@ Tu configures ici les adresses emails vers lesquelles tes adresses (listées ci-dessous) sont dirigées :

    - {if $grx neq ""}
  • {$grx}, {$domaine}org
  • {/if} + {if $melix} +
  • + {$melix}@{#globals.mail.alias_dom#}, + {$melix}@{#globals.mail.alias_dom2#} +
  • + {/if} {foreach from=$alias item=a}
  • - {$a.alias}@polytechnique.org + {$a.alias}@{#globals.mail.domain#} {if $a.expire}(expire le {$a.expire|date_format:"%d %b %Y"}){/if}
  • {/foreach} @@ -68,9 +73,9 @@

    Enfin, la réécriture consiste à substituer à ton adresse email habituelle - (adresse wanadoo, yahoo, free, ou autre) ton adresse polytechnique.org ou - m4x.org dans l'adresse d'expédition de tes messages, lorsque tu écris - à un camarade sur son adresse polytechnique.org. + (adresse wanadoo, yahoo, free, ou autre) ton adresse {#globals.mail.domain#} ou + {#globals.mail.domain2#} dans l'adresse d'expédition de tes messages, lorsque tu écris + à un camarade sur son adresse {#globals.mail.domain#}.

Un alias sympatique : melix !Un alias sympatique : {#globals.mail.alias_dom#} !
- Tu peux ouvrir en supplément une adresse synonyme de ton adresse @polytechnique.org, - sur les domaines @melix.org et @melix.net (melix = Mél X). + Tu peux ouvrir en supplément une adresse synonyme de ton adresse @{#globals.mail.domain#}, + sur les domaines @{#globals.mail.alias_dom#} et @{#globals.mail.alias_dom2#} (melix = Mél X).
{if $melix} - Tu disposes à l'heure actuelle des adresses {$melix}net et {$melix}org. - Pour demander à la place un autre alias melix, + Tu disposes à l'heure actuelle des adresses {$melix}@{#globals.mail.alias_dom#} + et {$melix}@{#globals.mail.alias_dom2#}. + Pour demander à la place un autre alias @{#globals.mail.alias_dom#}, il te suffit de te rendre ici {else} - A l'heure actuelle tu n'as pas activé d'adresse melix. + A l'heure actuelle tu n'as pas activé d'adresse @{#globals.mail.alias_dom#}. Si tu souhaites le faire, il te suffit de venir ici {/if} Adresse email défectueuse
diff --git a/templates/include/form.valid.aliases.tpl b/templates/include/form.valid.aliases.tpl index 8e4b000..7745e03 100644 --- a/templates/include/form.valid.aliases.tpl +++ b/templates/include/form.valid.aliases.tpl @@ -31,7 +31,7 @@ - + diff --git a/templates/mails/pattecasser.nl.tpl b/templates/mails/pattecasser.nl.tpl deleted file mode 100644 index 41e17cb..0000000 --- a/templates/mails/pattecasser.nl.tpl +++ /dev/null @@ -1,38 +0,0 @@ -{*************************************************************************** - * Copyright (C) 2003-2004 Polytechnique.org * - * http://opensource.polytechnique.org/ * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the Free Software * - * Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - ***************************************************************************} - -{config_load file="mails.conf" section="pattecassee_nl"} -{subject text="Une de tes adresses de redirection Polytechnique.org ne marche plus !!"} -{from full=#from#} -{to addr=$dest} - - Bonjour ! - - Nous t'écrivons car lors de l'envoi de la lettre d'information mensuelle de Polytechnique.org à ton adresse polytechnicienne {$dest}@polytechnique.org, l'adresse {$email}, sur laquelle tu rediriges ton courrier, ne fonctionnait pas. - Estimant que cette information serait susceptible de t'intéresser, nous avons préféré t'en informer. Il n'est pas impossible qu'il ne s'agisse que d'une panne temporaire. - Si tu souhaites changer la liste des adresses sur lesquelles tu reçois le courrier qui t'es envoyé à ton adresse polytechnicienne, il te suffit de te rendre sur la page : - https://www.polytechnique.org/emails.php - - A bientôt sur Polytechnique.org ! - L'équipe d'administration - - PS : si jamais tu ne disposes plus du mot de passe te permettant d'accéder au site, rends toi sur la page https://www.polytechnique.org/recovery.php ; elle te permettra de créer un nouveau mot de passe après avoir rentré ton login ({$dest}) et ta date de naissance !"; - -{* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/preferences.tpl.d/20.alias.tpl b/templates/preferences.tpl.d/20.alias.tpl index 8d45096..3e891a4 100644 --- a/templates/preferences.tpl.d/20.alias.tpl +++ b/templates/preferences.tpl.d/20.alias.tpl @@ -18,9 +18,11 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************} -

Mon alias mail @melix.net/.org

+{if #globals.mail.alias_dom#} +

Mon alias mail {#globals.mail.alias_dom#}

- Pour choisir un alias @melix.net et @melix.org (en choisir un nouveau annule l'ancien). + Pour choisir un alias {#globals.mail.alias_dom#} et {#globals.mail.alias_dom2#} (en choisir un nouveau annule l'ancien).
+{/if} {* vim:set et sw=2 sts=2 sws=2: *} -- 2.1.4
Nouvel alias :{$valid->alias}@melix.net{$valid->alias}@{#globals.mail.alias_dom}
Motif :