MailAdmin

A Python program for managing a mail server's user database

The source code is available on Github, and an API reference can be found here.

View Source View Documentation

What Is It?

I recently put together an email server, guided by a tutorial from Linode. It turned out to be relatively straightforward, except that adding users to the service required manually inserting rows into an SQL database, and changing passwords was even more of a chore.

This program exists to provide a graphical and command line interface for CRUD operations on the mail server's user base.

The Graphical Interface

When only a few modifications are needed, the graphical approach is most convenient.

The main interface for the administration program. It shows the available domains, users, and aliases (basically just forwarding addresses), with buttons to add, edit, and remove them.
Configuring domains, users, and aliases is simple with basic, self-explanatory dialogs.

The Command-Line Interface

When administering a server from another computer via SSH, or when making many changes to the database can be sped up using a batch approach, working from the terminal is easier.

The command line program provides the usual help messages describing how to use it.
That includes command-specific help. The program writes changes to the database immediately. This figure shows the working of the user-creation commands.