Perl-based management tools for manipulating VMailMgr-style virtual e-mail domains in Qmail. Provides both a command line tool (vmailmgr.pl
) and library (VMailMgr
) to facilitate code reuse. To facilitate remote control, interaction with the TheSchwartz job queue system is planned.
Pull requests and updates to the repository trigger automatic builds, courtesy of Travis CI.
In short: minimisation of administrator pain for those still administering VmailMgr backends with qmail.
- Feature-complete for hosting a large cluster of VmaiMgr virtual domains
- Remote control via a job queue
- Correct documentation
- Proper test coverage
At the time of writing, the ToDo list is as follows:
- Transfer code from existing CVS repository
- Finish VmailMgr library functions
- Prepare test suite
- Import to CPAN
Installation should, for a typical CPAN module, be straightforward:
perl Build.PL
./Build
./Build test
./Build install
Alternatively use your CPAN or your favourite package manager to install a pre-built package.
If you encounter errors during the above process, I consider this a bug, so long as you properly set up your environment (permissions, etc.). I personally find Perlbrew a very convenient environment to setup.
Documentation for the VMailMgr
module and command line tools is available via the perldoc command. In many cases, the same documentation is also available via man(1)
.
perldoc VMailMgr
perldoc vmailmgr.pl
Supplementary documentation for this package, such as an FAQ, is available in the doc
directory.
If the code or instructions do not work for you, please let me know! For installation issues, please include the output from the installation procedure. If you can provide tests or patches with your report, so much the better. Please send these via e-mail to [email protected]. I promise to answer all such e-mail, even if a complete response may take a week or so if I'm really swamped with work. E-mail containing code, patches or tests will likely come first.
I mainly run things off *BSD (notably OpenBSD) systems, but intend to have code work cleanly on across the board if this can reasonably be done.
I welcome contributions: as comments and ideas, but as code especially. I prefer to focus on the content of your ideas, rather than their presentation. To keep code consistent, I added the below guidelines. This hopefully allows us to focus on the content, rater than the form, of ideas.
Coding styles and tastes differ. To ease keeping things uniformly styled, I've included a Perltidy configuration file with this distribution.
By default, perltidy uses the .perltidyrc
file in the root of this module. It'd be a great help if you can provide any patches, tests, etc. formatted this way. For example, the following command edits the modified file in place.
perltidy -b lib/VmailMgr.pm
Preferably, when providing patches, please send them as unified diffs (diff -u
). Again, this makes it easier for me to understand things, not because it'd be an 'objectively better' format.