3 * Script to import members of mailman lists in the "plugin_mailman" table
4 * must be done before adding extend.py file in /var/lib/mailman/lists
5 * but after creating plugin_mailman table in the database
7 require_once 'pre.php';
8 require_once 'mailman/include/MailmanListDao.class.php';
9 $sql = "SELECT * from mail_group_list WHERE status=3";
10 $result = db_query_params($sql,array());
11 while($row = db_fetch_array($result)) {
15 $listname = $row['list_name'];
16 $dao = new MailmanListDao(CodendiDataAccess::instance());
17 echo "\n".$listname."\n**********************************\n";
18 exec('/usr/lib/mailman/bin/dumpdb '.'/var/lib/mailman/lists/'.$listname.'/config.pck', $config, $ret2);
21 for ($j=0;$j<count($config);$j++){
22 if(preg_match("#\'(usernames|passwords)\'#",$config[$j],$essai)) {
25 if (strpos($config[$j],"usernames") !== false)
30 elseif(strpos($config[$j],"passwords") !== false) {
35 if(preg_match("#([a-zA-Z0-9-_.]*@[a-zA-Z0-9-_.]*).*[u:\s]*\'([a-zA-Z0-9-_.\s]*)\'#",$config[$i],$essai)){
37 $usernames[$essai[1]] = $essai[2];
40 $members[$essai[1]]=$essai[2];
44 if (strpos($config[$i],"}") ===false) {
54 if (isset($members)) {
55 foreach ($members as $mail => $pwd) {
56 $res = $dao->userIsMonitoring($mail,$listname);
58 echo "Error on Query :".db_error();
61 $row_count = $res->getRow();
62 if ($row_count['count'] == 0){
63 if (isset($usernames) && array_key_exists($mail, $usernames)) {
64 $name = $usernames[$mail];
65 echo "Membre trouvé avec mail=".$mail." et nom=".$name." avec pwd=".$pwd."\n";
66 $dao->newSubscriber($mail,$name,md5($pwd),$listname);
69 echo "Membre trouvé avec mail=".$mail." avec pwd=".$pwd."\n";
70 $dao->newSubscriber($mail,'',md5($pwd),$listname);
74 echo $mail." est déjà membre de ".$listname."\n ";
80 echo "Aucun membres dans cette liste\n";