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 mailboxes/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 MH folder

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

% mhonarc -add test/www
Requiring MIME filter libraries ...
        mhexternal.pl
        mhtxthtml.pl
        mhtxtplain.pl
        mhtxtsetext.pl
Adding MH mail folder(s) 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.


[Prev:Resource File]
[Next:Removing Messages]
[ToC]


MHonArc 1.1.0 -- Adding Messages