Commit | Line | Data |
---|---|---|
06bdd610 VZ |
1 | #!/usr/bin/php5 -q |
2 | <?php | |
3 | /*************************************************************************** | |
8d84c630 | 4 | * Copyright (C) 2003-2009 Polytechnique.org * |
06bdd610 VZ |
5 | * http://opensource.polytechnique.org/ * |
6 | * * | |
7 | * This program is free software; you can redistribute it and/or modify * | |
8 | * it under the terms of the GNU General Public License as published by * | |
9 | * the Free Software Foundation; either version 2 of the License, or * | |
10 | * (at your option) any later version. * | |
11 | * * | |
12 | * This program is distributed in the hope that it will be useful, * | |
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
15 | * GNU General Public License for more details. * | |
16 | * * | |
17 | * You should have received a copy of the GNU General Public License * | |
18 | * along with this program; if not, write to the Free Software * | |
19 | * Foundation, Inc., * | |
20 | * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * | |
21 | ***************************************************************************/ | |
22 | ||
23 | ini_set('include_path', '.:../include:/usr/share/php'); | |
24 | ||
25 | require_once('connect.db.inc.php'); | |
06bdd610 VZ |
26 | require_once('emails.inc.php'); |
27 | ||
28 | $opts = getopt('o:'); | |
29 | if (($opts['o'] && $opts['o'] == '-') || empty($opts['o'])) { | |
30 | printf("Usage: emails.broken.helper.php -o <file>\n"); | |
31 | exit(1); | |
32 | } else { | |
33 | $output = $opts['o']; | |
34 | } | |
35 | ||
36 | $input_fd = fopen("php://stdin", "r"); | |
37 | $output_fd = fopen($output, "a"); | |
38 | ||
39 | while ($_email = fgets($input_fd)) { | |
40 | $_email = trim($_email); | |
41 | $email = valide_email($_email); | |
42 | if (empty($email) || $email=='@') { | |
43 | printf(">> %s: invalid email\n", $_email); | |
44 | continue; | |
45 | } | |
46 | ||
47 | $sel = XDB::query( | |
48 | "SELECT e1.uid, e1.panne != 0 AS panne, count(e2.uid) AS nb_mails, u.nom, u.prenom, u.promo, a.alias | |
49 | FROM emails AS e1 | |
50 | LEFT JOIN emails AS e2 ON (e1.uid = e2.uid AND FIND_IN_SET('active', e2.flags) AND e1.email != e2.email) | |
51 | INNER JOIN auth_user_md5 AS u ON (e1.uid = u.user_id) | |
52 | INNER JOIN aliases AS a ON (u.user_id = a.id AND FIND_IN_SET('bestalias',a.flags)) | |
53 | WHERE e1.email = {?} | |
54 | GROUP BY e1.uid", $email); | |
55 | if ($sel->numRows() > 0) { | |
56 | fwrite($output_fd, $email . "\n"); | |
57 | } else { | |
58 | printf(">> %s: email not in the database\n", $_email); | |
59 | } | |
60 | } | |
61 | ||
62 | fclose($input_fd); | |
63 | fclose($output_fd); | |
64 | ||
65 | // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: | |
66 | ?> |