X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=bin%2Femails.broken.php;h=e307983bce0b678a04852f0fba2287740e753bb7;hb=11d8a1833f6316effdbca817b8210b1c0dbeeb58;hp=e5a7021d4d66b46dac1e935233219b3117bb0ed7;hpb=8858cfc177511f7eba58876c5099b1253441203d;p=platal.git diff --git a/bin/emails.broken.php b/bin/emails.broken.php index e5a7021..e307983 100755 --- a/bin/emails.broken.php +++ b/bin/emails.broken.php @@ -19,26 +19,34 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ -ini_set('include_path', '../include:/usr/share/php'); - -require_once('../include/xorg.inc.php'); -require_once('../include/emails.inc.php'); +ini_set('include_path', '.:../include:/usr/share/php'); -$opts = getopt('i:'); +require_once('connect.db.inc.php'); +require_once('xorg.inc.php'); +require_once('emails.inc.php'); + +$opts = getopt('i:o:'); if (($opts['i'] && $opts['i'] == '-') || empty($opts['i'])) { $file = 'php://stdin'; } else { $file = $opts['i']; } +if (($opts['o'] && $opts['o'] == '-') || empty($opts['o'])) { + $output = 'php://stdout'; +} else { + $output = $opts['o']; +} $emails = explode("\n", file_get_contents($file)); +$list = array(); + foreach ($emails as $_email) { $email = valide_email($_email); if (empty($email) || $email=='@') { continue; } - $sel = $globals->xdb->query( + $sel = XDB::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) @@ -48,7 +56,17 @@ foreach ($emails as $_email) { GROUP BY e1.uid", $email); if ($x = $sel->fetchOneAssoc()) { if (!$x['panne']) { - $globals->xdb->execute("UPDATE emails SET panne=NOW() WHERE email = {?}", $email); + XDB::execute("UPDATE emails + SET panne=NOW(), last=NOW() + panne_level = 1 + WHERE email = {?}", + $email); + } else { + XDB::execute("UPDATE emails + SET last = CURDATE(), + panne_level = panne_level + 1 + WHERE email = {?} + AND DATE_ADD(last, INTERVAL 7 DAY) < CURDATE()", $email); } if (empty($x['nb_mails'])) { @@ -70,7 +88,7 @@ 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 + https://www.polytechnique.org/emails/redirect A bientôt sur Polytechnique.org ! @@ -81,7 +99,7 @@ polytechnicienne, il te suffit de te rendre sur la page : 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 + https://www.polytechnique.org/recovery elle te permettra de créer un nouveau mot de passe après avoir rentré ton login ({$x['alias']}) et ta date de naissance !"; @@ -95,9 +113,38 @@ login ({$x['alias']}) et ta date de naissance !"; $mail->send(); echo "$email : mail envoyé\n"; } + + if (!isset($list[$x['alias']])) { + $list[$x['alias']] = array($email); + } else { + $list[$x['alias']][] = $email; + } } else { echo "$email : cette addresse n'est pas dans la base\n"; - } + } } +XDB::execute("UPDATE emails + SET panne_level = panne_level - 1 + WHERE flags = 'active' AND panne_level > 1 + AND last != CURDATE()"); + +$csv = "nom;prenom;promo;alias;bounce;nbmails\n"; +foreach ($list as $alias=>$mails) { + $sel = Xdb::query( + "SELECT u.user_id, count(e.email) AS nb_mails, u.nom, u.prenom, u.promo + FROM aliases AS a + INNER JOIN auth_user_md5 AS u ON a.id = u.user_id + LEFT JOIN emails AS e ON (e.uid = u.user_id AND FIND_IN_SET('active', e.flags) AND e.panne = 0) + WHERE a.alias = {?} + GROUP BY u.user_id", $alias); + if ($x = $sel->fetchOneAssoc()) { + $csv .= $x['nom'].';'.$x['prenom'].';' .$x['promo'].';'.$alias.';' . join(',', $mails) . ';'.$x['nb_mails']."\n"; + } +} + +$fo = fopen($output, 'w+'); +fwrite($fo, $csv); +fclose($fo); + ?>