[Previous][Next][Contents][FAQ][Bugs][Home]

Adding Messages

Adding messages to an archive is done via the -add option. If no mailbox/folder arguments are given, MHonArc assumes that a single message is being added to the archive via standard input. Otherwise, MHonArc adds the messages contained in the mail folders specified.

NOTE

MHonArc will skip any messages that already exist in an archive. If a message to be added has a message-ID that equals a message-ID of an archived message, the message is skipped.


Examples

Adding a mail folder

Here is example session adding an mail folder to an existing archive:

% mhonarc -add test/www
Requiring MIME filter libraries ...
        mhexternal.pl
        mhtxthtml.pl
        mhtxtplain.pl
        mhtxtsetext.pl
Adding messages to ./maillist.html
Reading test/www/ ........................................
Writing HTML ...
49 messages

.forward

MHonArc can be used to add new messages as they are received by using the ".forward" file in your home directory. Here is how I would set up my .forward file to invoke MHonArc on incoming mail:

\ehood, "|/mnt/ehood/bin/webnewmail #ehood"

NOTE on .forward entry:

The "\ehood" tells sendmail to still deposit the incoming message to my mail spool file. The "#ehood" Bourne shell comment is needed to insure the command is unique from another user. Otherwise, sendmail may not invoke the program for you or the other user.

"webnewmail" is a Perl program that calls MHonArc with the appropriate arguments. A wrapper program is used instead of calling MHonArc directly to keep the .forward file simple. Here is the code to the webnewmail program:

#!/usr/local/bin/perl

$cmd = "/mnt/ehood/bin/mhonarc -add -quiet " .
 "-outdir /mnt/ehood/public_html/newmail";
open(M2H, "|$cmd");
print M2H <STDIN>;
close(M2H);

The webnewmail can be modified to check the mail header before calling MHonArc to perform selective archiving of messages. For example, webnewmail can check the To: field and only archive messages that come from a specific mailing list.

Cron

This example uses cron(1) to update some mail archives from MH mail folders.

The following entry is in my crontab file:

0 0 * * * webmail

webmail is a script executed every night that calls MHonArc to perform the update:

#! /bin/csh -f

umask 022
setenv M2H_RCFILE $HOME/.mhonarc.rc
## WWW messages
mhonarc -add \
          -outdir $HOME/public_html/doc/wwwmail \
          $HOME/mail/www
folder +www >& /dev/null
refile first-last +www.ar >& /dev/null    # Archive original messages

## Tools messages
mhonarc -add \
          -outdir $HOME/public_html/doc/toolsmail \
          $HOME/mail/tools $HOME/mail/dtd
folder +tools >& /dev/null
refile first-last +tools.ar >& /dev/null  # Archive original messages
folder +dtd >& /dev/null
refile first-last +dtd.ar >& /dev/null    # Archive original messages

folder +inbox >& /dev/null                # Set current folder to inbox


To avoid mail everynight from cron due to output from MHonArc, the -quiet option can be used for each call to MHonArc, or use the following line in your crontab file:

0 0 * * * webmail > /dev/null

Standard error is not redirected to /dev/null so mail is still received if errors occured during MHonArc execution.


[Previous][Next][Contents][FAQ][Bugs][Home]