MinorDomo is a "minimalistic replacement for
[MajorDomo](http://www.greatcircle.com/majordomo/)". In this guide:
* I have my MinorDomo lists at `/home/minordomo`
* I'll be creating a list called `developers@example.com`
* All messages sent to this list will be archived
* Only individuals on the list can send messages to the list (i.e. it's not 'open')
Creating a new mailing list
---------------------------
First copy over the sample list to the MinorDomo lists folder:
cd /home/minordomo
cp -r /usr/doc/minordomo-0.6.1/sample-list developers
Here's a table of entities in the folder you just copied. Keep in that some of
these might not exist!
| Name | Type | Function |
|-------------|-----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `list` | File | Contains email addresses, one per line |
| `footer` | File | Contains text which is to be appended to every message sent to this list (e.g. disclaimer, unsubscribe info). Can use placeholders for administrator email (`\a`), domain name (`\d`), mailing list name (`\l`, sans domain), lisr URI (`\u`). |
| `info` | File | Information on the list. Obtained by an email to the list with subject line "**info developers**" |
| `one-liner` | File | A one-line description of the list |
| `config` | File | List configuration file. If present, overrides `/etc/minordomo.conf` Two important directives: `open_lists=none` makes this a 'closed' list `subject_prefix=[Developers List]` gives each message a prefix "Developers List" |
| `archive` | Directory | All messages sent to the list are saved in this folder. It is not created when you copy the sample list above. Messages are stored in YYYY/MM/DD/ sub-folders. You can get awesome HTML output with [HyperMail](http://www.hypermail-project.org/hypermail.html) |
* Once you're done editing things to your heart's content, **change the permissions** to `nobody:nobody`.
* Then **add the following** to `/etc/aliases`:
developers: "|/usr/sbin/minordomo.pl developers"
* Rebuild the aliases DB by **issuing** `newaliases`
Now test the list with an email.
Working with MinorDomo Lists
----------------------------
Sending an email to `minordomo@example.com` with the following subject lines does a variety of things:
| Subject Line | Action |
|--------------------|--------------------------------------|
| subscribe `` | subscribes to a mailing list |
| unsubscribe `` | unsubscribes from a mailing list |
| info [``] | gets information on a list or server |
| list `` | returns a subscriber list if enabled |
Sample HyperMail Script
-----------------------
#!/usr/bin/perl -w
umask 0000;
$archive_dir = "/home/minordomo/archive";
$output_dir = "/home/minordomo/archive/html";
@years = `ls $archive_dir`;
chomp @years;
foreach $year (@years) {
unless (-e "$output_dir/$year") {
mkdir "$output_dir/$year";
}
`find $archive_dir/$year -type f | xargs cat | /usr/local/bin/hypermail -x -d $output_dir/$year`;
}