mailexec(1)                   Mail Avenger 0.8.1                   mailexec(1)



NAME
       mailexec - run program on messages in mbox file or maildir

SYNOPSIS
       mailexec [-nvFR] mailbox program [arg ...]

DESCRIPTION
       mailexec runs a program over every message in mailbox, which must be an
       mbox-format mail file or maildir directory.  For each message
       encountered, mailexec executes program with the specified arguments,
       supplying the message as standard input.  mailexec synthesizes a
       "From " line and a "Return-Path:" header field for each message if the
       message does not already contain one.  (This behavior can be modified
       by the -F and -R flags, described below.)

       When parsing mbox format files, mailexec unescapes "From " lines.  If a
       line begins with one or more ">" characters followed by "From ",
       mailexec deletes one of the ">" characters.  If you do not want this
       unescaping behavior, see the formail(1) utility, which has a -s flag
       that performs a similar function to mailexec.

       OPTIONS

       -n  When processing a maildir, causes mailexec to look exclusively at
           "new" messages that have not yet been moved to the cur directory.

       -v  Turns on verbose mode.  If mailbox is a maildir, mailexec prints
           out the name of each file it processes inside the maildir.  If
           mailbox is an mbox format file, mailexec prints the message-id of
           each message it processes (as long as messages have a message-id
           header).

       -F  Suppresses printing of the initial "From " line at the beginning of
           each message.

       -R  Suppresses printing of initial "Return-Path:" lines.

EXAMPLES
       To get the same behavior as the Unix from(1) command on a mail
       directory dir, you can run either of the following two commands:

               mailexec -n dir head -1
               mailexec -n dir sed -ne 1p

       To convert an mbox-format file mbox into a maildir directory dir, you
       can run:

               mailexec mbox deliver dir/

       Conversely, to convert maildir dir into an mbox-format file mbox, run:

               mailexec dir deliver mbox

       To train the spamassassin filter on a mail folder called spam
       containing unwanted messages, run:

               mailexec spam sa-learn --spam

       Note that this works whether spam is an mbox format file or a maildir
       directory.

       If you have an old mbox file or maildir directory box and wish to
       "import" the old mail into your web mail account, say
       example@gmail.com, you can run:

               mailexec -F box sendmail example@gmail.com

       Note again that this works whether box is an mbox format file or a
       maildir directory.

SEE ALSO
       avenger(1), deliver(1), dotlock(1), avenger.local(8)

       The Mail Avenger home page: <http://www.mailavenger.org/>.

BUGS
       When reading from a maildir and synthesizing a "From " line, mailexec
       guesses the delivery date of the message based on the name of the file,
       which works in practice but could be considered dangerous since file
       names in maildirs are supposed to be opaque.  Thus, while generally
       mailexec places sensible dates in "From " lines and processes maildir
       messages in order of delivery, it might be unwise to rely on this
       behavior.

       mailexec generates the time for the "From " line in the local time
       zone, as is customary on Unix.  This could lead to loss of information
       when transferring mailboxes across time zones or combining mailboxes
       created in different timezones.  Moreover, this practice is
       incompatible with qmail, which uses GMT in the "From " line.

       mailexec expects that if there is a "Return-Path:" header field, it
       will be the first header field in the message (possibly after the
       initial "From " line, which is not itself a header field).

       There are many different variants of the mbox message format.  mailexec
       expects the "mboxrd" variant, in which each message is delimited by a
       "From " line at the beginning and a blank line at the end, and every
       line beginning with either "From " or one or more ">" characters
       followed by "From " is escaped by adding another ">" character.  In
       particular, this means mailexec will incorrectly parse System V
       "mboxcl2" files, which use "Content-Length:" header fields to determine
       message boundaries rather than "From " lines.

       mailexec attempts to lock mbox format files, but will execute anyway
       even if it cannot obtain the lock.  This allows it to work on read-only
       files, but if you are highly unlucky could result in the last message
       being truncated.

       There is no locking for maildir files.  If a maildir is modified while
       mailexec is running over it, mailexec could miss messages.  If you are
       concurrently manipulating the maildir with a mail reader, maildir could
       even miss old messages that just happen to have been moved from the new
       to the cur directory.  mailexec will issue a warning if it fails to
       open a file that it had previously seen when scanning the directory.

AUTHOR
       David Mazieres



Mail Avenger 0.8.1                2010-04-12                       mailexec(1)
