Postfix Admin
From WorldGuard
Contents |
[edit] Overview
I'm quite fond of the mail list called mlmmj or mailing list manager made joyful. Its based upon ezmlm, my previous favourite list till it just got to be a pain to install qmail.
It doesn't have any decent method of using a database or having a GUI to manage it. As I'm currently running postfix-admin I decided a quick fix was to add list support to it.
This is a work in progress. I've just branched the existing postfix-admin and stored it with my changes here in my local public bazaar repository. If it gets clean enough and its accepted I'll submit a patch against postfix-admin upstream.
I've also made numerous changes such as:
- Admin users are authenticated against their account in the database
- Updated style to be wider
- Support artificial routes
- Support mlmmj lists (add/remove/manage)
- If a language item does not exist, use the english version of it instead
- Uses my custom header/footer used with my own webpage
- Hack to make it work with horde
See the BZR log for more details.
A running example (sorry no demo login) is at: http://mail.worldguard.com.au
[edit] Rough notes
[edit] MYSql Table
mysql> desc list; +------------------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------------------+--------------+------+-----+---------+-------+ | address | varchar(255) | NO | PRI | NULL | | | name | varchar(255) | NO | | NULL | | | domain | varchar(255) | NO | | NULL | | | created | datetime | NO | | NULL | | | modified | datetime | NO | | NULL | | | active | tinyint(1) | NO | | 1 | | | listdir | varchar(255) | NO | | NULL | | | access | varchar(255) | NO | | allow | | | addtohdr | tinyint(1) | NO | | 0 | | | bouncelife | bigint(20) | NO | | 432000 | | | closedlist | tinyint(1) | NO | | NULL | | | closedlistsub | tinyint(1) | NO | | NULL | | | customheaders | varchar(255) | NO | | NULL | | | delheaders | varchar(255) | NO | | NULL | | | digestinterval | bigint(20) | NO | | 604800 | | | digestmaxmails | bigint(20) | NO | | 50 | | | footer | varchar(255) | NO | | NULL | | | maxmailsize | bigint(20) | NO | | 1048576 | | | maxverprecips | bigint(20) | NO | | 100 | | | memorymailsize | bigint(20) | NO | | NULL | | | moderated | tinyint(1) | NO | | NULL | | | modnonsubposts | tinyint(1) | NO | | NULL | | | noaccessdenymails | tinyint(1) | NO | | NULL | | | noarchive | tinyint(1) | NO | | NULL | | | nodigestsub | tinyint(1) | NO | | NULL | | | nodigesttext | tinyint(1) | NO | | NULL | | | noget | tinyint(1) | NO | | NULL | | | nomaxmailsizedenymails | tinyint(1) | NO | | NULL | | | nonomailsub | tinyint(1) | NO | | NULL | | | nosubonlydenymails | tinyint(1) | NO | | NULL | | | notifysub | tinyint(1) | NO | | NULL | | | notoccdenymails | tinyint(1) | NO | | NULL | | | owner | varchar(255) | NO | | NULL | | | prefix | varchar(255) | NO | | NULL | | | submod | varchar(255) | NO | | NULL | | | subonlyget | tinyint(1) | NO | | NULL | | | subonlypost | tinyint(1) | NO | | NULL | | | tocc | tinyint(1) | NO | | NULL | | +------------------------+--------------+------+-----+---------+-------+ 38 rows in set (0.00 sec)
mysql> desc list_member; +------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+-------+ | address | varchar(255) | NO | | NULL | | | member | varchar(255) | NO | PRI | NULL | | | digest | tinyint(1) | NO | | 0 | | | subscriber | tinyint(1) | NO | | 0 | | | nomailsub | tinyint(1) | NO | | 0 | | | owner | tinyint(1) | NO | | 0 | | | moderator | tinyint(1) | NO | | 0 | | +------------+--------------+------+-----+---------+-------+ 7 rows in set (0.00 sec)
[edit] mlmmj thoughts
When a message is about to be delivered we can query the database, check the last modified time and if its newer, dump the database to the relevant files that mlmmj expects, then execute the mlmmj executables.
[edit] Download
You can download it from my bazaar repository by doing the following: -
bzr branch http://code.worldguard.com.au/public/bzr/brg_postfix-admin
