Thread: [Postfixadmin-devel] Mass creation script
Brought to you by:
christian_boltz,
gingerdog
From: Simone P. <pic...@tr...> - 2009-11-09 14:12:32
|
Hi, don't know if this is the right list to use, but I'd like to share a simple python script that can be used to create users and domains in a Postfixadmin installation taking the list from a .CSV file. All it needs is an ordinary CSV file (I created mine exporting an excel file with openoffice). The file should contains the user list with a line for each user; the first line must be a title line with at least the following column names: * user - user part of the email (like user in 'us...@do...') * password - cleartext password (it will be encripted) * domain - domain name (like 'domain.com') * name - full user name (like 'Name Surname') (the 'name' column is optional) the script will populate the DB creating entries in the domain, mailbox and alias tables. You can ask also to create default aliases for each domain. The script can be found here: http://labs.truelite.it/truedoc/raw-attachment/wiki/EnPostfixAdminInst/inspostadmusers.py invoking it with -h will give you all the options, in normal use you will need to give a database account password with the -p options, other parameters (dbname, dbuser, dbhost) are set to the default used by the Debian package, but can be changed by other options or editing the default values inside the script. I used this script to import over 400 users for ~10 domains in a Postfixadmin server (a 2.3 version using dovecot and MySQL). It did its work in a few seconds without problems, but I cannot give any warranty about it... I'aware of some limitation: the script works only with a MySQL backend, and the mailboxes are created with a pathname in the form: domain/usernmame This can be easily changed modifying* the line: mailbox['maildir'] = row["domain"]+'/'+row["user"]+'/' but making it work with Postgres will require some knowledge of Python Postgres API (and I have none...). The script was used and tested only on a Debian Lenny system using postfixadmin 2.3, so probably there are many other limitations and trivial errors I'm not aware of. Unfortunately I don't have the time to test it more extensively; I'm posting it anyway hoping it could be useful to other people and that it could be used at least as a starting point for something more refined. Regards Simone -- Simone Piccardi Truelite Srl pic...@tr... (email/jabber) Via Monferrato, 6 Tel. +39-347-1032433 50142 Firenze http://www.truelite.it Tel. +39-055-7879597 Fax. +39-055-7333336 |
From: David G. <da...@co...> - 2009-11-09 14:37:24
|
Simone Piccardi wrote : > Hi, > > don't know if this is the right list to use, but I'd like to share a > simple python script that can be used to create users and domains in a > Postfixadmin installation taking the list from a .CSV file. > > All it needs is an ordinary CSV file (I created mine exporting an excel > file with openoffice). The file should contains the user list with a > line for each user; the first line must be a title line with at least > the following column names: > > * user - user part of the email (like user in 'us...@do...') > * password - cleartext password (it will be encripted) > * domain - domain name (like 'domain.com') > * name - full user name (like 'Name Surname') > > (the 'name' column is optional) > > the script will populate the DB creating entries in the domain, mailbox > and alias tables. You can ask also to create default aliases for each > domain. > > The script can be found here: > > http://labs.truelite.it/truedoc/raw-attachment/wiki/EnPostfixAdminInst/inspostadmusers.py > > invoking it with -h will give you all the options, in normal use you > will need to give a database account password with the -p options, other > parameters (dbname, dbuser, dbhost) are set to the default used by the > Debian package, but can be changed by other options or editing the > default values inside the script. > > I used this script to import over 400 users for ~10 domains in a > Postfixadmin server (a 2.3 version using dovecot and MySQL). It did its > work in a few seconds without problems, but I cannot give any warranty > about it... > > I'aware of some limitation: the script works only with a MySQL backend, > and the mailboxes are created with a pathname in the form: > > domain/usernmame > > This can be easily changed modifying* the line: > > mailbox['maildir'] = row["domain"]+'/'+row["user"]+'/' > > but making it work with Postgres will require some knowledge of Python > Postgres API (and I have none...). > > The script was used and tested only on a Debian Lenny system using > postfixadmin 2.3, so probably there are many other limitations and > trivial errors I'm not aware of. Unfortunately I don't have the time to > test it more extensively; I'm posting it anyway hoping it could be > useful to other people and that it could be used at least as a starting > point for something more refined. > Thanks! I'll try and get it in the ADDITIONS/contrib folder (whichever) thanks David. -- David Goodwin [ david at codepoets dot co dot uk ] [ http://www.codepoets.co.uk ] |
From: Tanstaafl <tan...@li...> - 2009-11-09 15:03:20
|
On 11/9/2009 9:37 AM, David Goodwin wrote: >> don't know if this is the right list to use, but I'd like to share >> a simple python script that can be used to create users and domains >> in a Postfixadmin installation taking the list from a .CSV file. <snip> > Thanks! I'll try and get it in the ADDITIONS/contrib folder > (whichever) And maybe add it to the interface (an 'Import' button, with the ability browse a local filesystem for the cvs file)? :) |