Mlmmj Web Archive

WARNING: This setup is kind of buggy, so it's recommended to make a backup of the mailing list messages before beginning.

Hypermail

To implement a Web Archive of the mailing list we'll use Hypermail.

Hypermail is a free (GPL) program to convert email from Unix mbox format to HTML.

Install Hypermail

To install Hypermail, type:

 
$ doas pkg_add hypermail-2.3.0 

Documentation

Read the documentation and the FAQ.

Web Archive

We'll use the update-archive.sh script that will be responsible for passing the mailing list messages to Hypermail, that will generate the HTML files from the mailing list messages.

Attach:update-archive.txt

We'll need to modify the script to change owner and group of the mailing list archive web directory by changing the line "chown apache:apache -R $WWWDIR" to "chown -R root:daemon $WWWDIR".

We'll need to install GNU coreutils to be able to use the seq command (gseq, in this case):

$ doas pkg_add coreutils

We'll need to modify the script by replacing seq with gseq.

Then we'll create the Web directory for the mailing list archive:

 
$ doas mkdir -p /var/www/htdocs/example.com/mailing-list-name

Replace example.com and mailing-list-name.

Then we'll need to create two auxiliary files used by the update-archive script:

$ doas touch /var/www/htdocs/example.com/mailing-list-name/last
$ doas touch /var/spool/mlmmj/mailing-list-name/index

Replace example.com and mailing-list-name.

Afterwards we'll add the execution of the update-archive.sh script to crontab using:

$ doas crontab -e

and we'll add the following line:

*/30 * * * * /path/to/update-archive.sh <name_of_the_list> <HTML_files_output_directory> <mailing_list_directory> 2>&1

For example:

*/30 * * * * /usr/local/bin/update-archive.sh mailing-list-name /var/www/htdocs/example.com/mailing-list-name /var/spool/mlmmj/mailing-list-name

Replace mailing-list-name with your real list name.

With this line the script responsible for updating the archive will run every 30 minutes.

Known bugs:

- The last message may get indexed twice.
- The last message page shows the link "Next message" many times at the top and bottom of the page.