#!/usr/bin/php5 -q fetchOneAssoc()) { if (!$x['panne']) { 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'])) { echo "$email : seule adresse active de {$x['prenom']} {$x['nom']}\n"; } else { $mail = new PlMailer('emails/broken.mail.tpl'); $mail->addTo("\"{$x['prenom']} {$x['nom']}\" <{$x['alias']}@" . $globals->mail->domain . '>'); $mail->assign('x', $x); $mail->assign('email', $email); $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()"); XDB::execute("UPDATE emails SET panne_level = 0 WHERE flags = 'active' AND panne_level = 1 AND DATE_ADD(last, INTERVAL 1 YEAR) < 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); // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: ?>