Créer une liste par une ligne de commande ? [CLOSED]

Utilisation de mailman pour les listes email de distribution

Créer une liste par une ligne de commande ? [CLOSED]

New postby guidtz » Fri May 21, 2010 2:50 pm

Bonjour,

comment je pourrais faire pour créer une liste sur un serveur artica par une ligne de commande ? En fait j'ai des développeurs qui sont en train de monter un site pour un client, on est pas sur de gérer la messagerie, mais si on la gère ce sera au travers d'Artica. Dans ce cas là ils vont avoir besoins quand ils créent des groupes d'utilisateurs dans l'appli, que ces groupes aient automatiquement une liste donc, l'application :
1/ crée la liste
2/ ajoute/enlève des utilisateurs

Pour le 2/ je penses pas qu'il y ait de problèmes en envoyant un mail on peut ajouter des utilisateurs à une liste, cependant il faut qu'elle soit créée et donc que le 1/ soit aussi fait par un script.

Merci à toi.

Cdlt
guidtz
 
Posts: 2007
Joined: Sat Jan 17, 2009 3:08 am
Location: Vendée
Artica servers number: 3
Linux System: Debian
Technical skills: A Linux System Administrator

Re: Créer une liste par une ligne de commande ?

New postby admin » Sat May 22, 2010 12:40 am

le mieux c'est qu'ils le gère en php
il faut créer un ficher exec.xxx.php dans le répertoire de artica

Code: Select all
<?php
include_once(dirname(__FILE__).'/ressources/class.user.inc');

// on créé la class
$user=new user();
// pour créer un user
$user->uid=uid;
$user->mail=toto@titi.com;
$user->password=password;
blabla
//pour le créer ou modifier
$user->add_user();

//pour supprimer
// on créé la class
$user=new user(uid);
$user->DeleteUser();

?>
User avatar
admin
Site Admin
 
Posts: 11942
Joined: Wed Oct 17, 2007 7:59 am
Location: France

Re: Créer une liste par une ligne de commande ?

New postby guidtz » Sun May 23, 2010 7:08 am

c'est le script qui permet de créer une liste ?

Ni y a t'il pas moyen de les créer via les commandes mailman habituelles et que Artica rajoute ces listes dans son interface ?

Slts
guidtz
 
Posts: 2007
Joined: Sat Jan 17, 2009 3:08 am
Location: Vendée
Artica servers number: 3
Linux System: Debian
Technical skills: A Linux System Administrator

Re: Créer une liste par une ligne de commande ?

New postby admin » Sun May 23, 2010 8:37 am

même chose

faire php5 /tonscript.php --listname=maliste --userid=toto --admin=moi@toto.com --password=pass --domain=domain.tld --webservername=malist.domain.tld CREATE
Code: Select all
<?php

include_once(dirname(__FILE__)."/ressources/class.user.inc");
include_once(dirname(__FILE__)."/ressources/class.functions.inc");
include_once(dirname(__FILE__)."/ressources/class.mailmanCTL.inc");
include_once(dirname(__FILE__)."/ressources/class.apache.inc");
include_once(dirname(__FILE__)."/ressources/class.templates.inc");

$argvs=implode(' ',$argv);
if(preg_match('#--listname=(.+?)\s+#,$argvs,$re)){$GLOBALS["listname"]=$re[1];}
if(preg_match('#--userid=(.+?)\s+#,$argvs,$re)){$GLOBALS["uid"]=$re[1];}
if(preg_match('#--admin=(.+?)\s+#,$argvs,$re)){$GLOBALS["admin_email"]=$re[1];}
if(preg_match('#--websername=(.+?)\s+#,$argvs,$re)){$GLOBALS["webservername"]=$re[1];}
if(preg_match('#--domain=(.+?)\s+#,$argvs,$re)){$GLOBALS["webservername_domain"]=$re[1];}
if(preg_match('#--password=(.+?)\s+#,$argvs,$re)){$GLOBALS["admin_password"]=$re[1];}
if(preg_match('#CREATE$#,$argvs,$re)){list_save();}




function list_save(){
   $listname=$GLOBALS["listname"];
   $admin_email=$GLOBALS["admin_email"];
   $tpl=new templates();
   
   $ct=new user($GLOBALS["uid"]);
   $ou=$ct->ou;
   
   $ldap=new clladp();
   $uid=$ldap->uid_from_email($admin_email);
   if($uid==null){
      echo $tpl->_ENGINE_parse_body("{mailman_admin_not_exists}");
      exit;
   }
   $ct=new user($uid);
   if($ct->ou<>$ou){
      echo $tpl->_ENGINE_parse_body("{mailman_admin_not_exists}");
      exit;
   }
   
   $listuid=$ldap->uid_from_email("$listname@$domain");
   if($listuid<>null){
      echo $tpl->_ENGINE_parse_body("{account_already_exists}:$listname@$domain");
      exit;
   }
   
   if($GLOBALS["webservername"]==null){
      echo $tpl->_ENGINE_parse_body("{www_server_name}:NULL !");
      exit;      
   }
   
   $apache=new vhosts();
   $array=$apache->SearchHosts($GLOBALS["webservername"].'.'.$GLOBALS["webservername_domain"]);
   if($array["apacheservername"]<>null){
      echo $tpl->_ENGINE_parse_body($GLOBALS["webservername"].'.'.$GLOBALS["webservername_domain"]." {error_domain_exists}");
      exit;   
   }
   
   
   $admin_password=$GLOBALS["admin_password"];
   $domain=$GLOBALS["domain"];
   $mailman=new mailman_control($ou);
   $mailman->list_name=$listname;
   $mailman->list_domain=$domain;
   $mailman->admin_email=$admin_email;
   $mailman->admin_password=$GLOBALS["admin_password"];
   $mailman->webservername=$GLOBALS["webservername"].'.'.$GLOBALS["webservername_domain"];
   if($mailman->EditList()){
      
   }
   
$sock=new sockets();
      $sock->getFrameWork("cmd.php?syncro-mailman=yes");   
   }

?>
User avatar
admin
Site Admin
 
Posts: 11942
Joined: Wed Oct 17, 2007 7:59 am
Location: France

Re: Créer une liste par une ligne de commande ?

New postby guidtz » Sun May 23, 2010 7:12 pm

dans tonscript.php je met ce que tu ma mis en copie ?

Slts
guidtz
 
Posts: 2007
Joined: Sat Jan 17, 2009 3:08 am
Location: Vendée
Artica servers number: 3
Linux System: Debian
Technical skills: A Linux System Administrator

Re: Créer une liste par une ligne de commande ?

New postby admin » Mon May 24, 2010 9:42 am

oui
User avatar
admin
Site Admin
 
Posts: 11942
Joined: Wed Oct 17, 2007 7:59 am
Location: France

Re: Créer une liste par une ligne de commande ?

New postby guidtz » Tue May 25, 2010 8:52 am

Très bien je vois avec mes devs dans la semaine quand on va mettre en place la preprod du projet.

Slts
guidtz
 
Posts: 2007
Joined: Sat Jan 17, 2009 3:08 am
Location: Vendée
Artica servers number: 3
Linux System: Debian
Technical skills: A Linux System Administrator


Return to Mailman

Who is online

Users browsing this forum: No registered users and 1 guest

cron