README for GNU Mailutils implementation of MH The primary aim of this implementation is to provide an interface between Mailutils and Emacs using mh-e module. To use Mailutils MH with Emacs, add the following line to your site-start.el or .emacs file: (load "mailutils-mh") Refer to the file TODO in this directory for information about the current state of Mailutils MH implementation. The list of differences between Mailutils and the RAND implementation of MH: * All programs use usual GNU long options. The support for MH single-dash options is provided for backward compatibility. * UUCP addresses are not supported * Format specifications ** New functions *** package Argument: none Return: string Returns package name (string "mailutils"). *** package_string Argument: none Return: string Returns full package string (e.g. "GNU Mailutils 2.1") *** version Argument: none Return: string Returns mailutils version. *** unre Argument: string Return: string The function removes any leading whitespace and eventual "Re:" prefix from its argument. Useful for creating subjects in reply messages: %<{subject}Subject: Re: %(unre{subject})\\n%> *** rcpt Argument: string, one of "to", "cc", "me", "all" Return: boolean This function returns true if the given element is present in the recipient mask (as modified by any --cc and --nocc options) and false otherwise. It is used in default formats for repl and comp, e.g.: %(lit)%<(rcpt to)%(formataddr{to})%> Notice that this means that usual replcomps file will be ignoring --cc and --nocc options, unless it has been modified as shown above. *** concat Argument: string Return: none Appends whitespace + arg to string register. *** printhdr Argument: string Return: none Prints the value of string register, prefixed by the given argument. The output is formatted as RFC 822 header, i.e. it is split at whitespace characters nearest to the width boundary and each subsequent segment is prefixed with horizontal tabulation. *** in_reply_to Argument: none Return: string Generates the value for the In-reply-to: header according to RFC 2822. *** references Argument: none Return: string Generates the value for the References: header according to RFC 2822. * rmm ** Different behaviour if one of the messages in the list does not exist. Mailutils rmm does not delete any messages. Standard rmm in this case deletes all messages preceeding the non-existent one. ** The rmmproc: profile component is not used. * fmtdump command is not provided. Use fmtcheck instead. * repl Understands --use option. Disposition shell provides 'use' command. * comp Understands --build option. * mhl If the argument to 'ignores' contains more than one component name it must be enclosed in double-quotes. Dangling equal sign is an error, to set a string variable to the empty value use = "", e.g.: overflowtext="" (see the supplied mhl.format file). Ineractive prompting is not yet implemented. * pick ** The non-standard command line syntax `--FIELD STRING' where `FIELD' is any string is deprecated. It is recognized only if pick is called from within another program, so that existing application continue to work. Please use the following syntax instead: `--component FIELD --pattern STRING' ** New command line option --cflags allows to control the type of regular expressions used. The option must occur right before --pattern or --component option (or one of its aliases, like --cc, --from, etc.) The argument to this option is a string of type specifications: B Use basic regular expressions E Use extended regular expressions I Ignore case C Case sensitive. Default is "EI". The flags remain in effect until the next occurrence of --cflags option. Sample usage: pick --cflag BC --subject '*a string' ** The date comparison options (--before and --after) accept date specifications in a wide variety of formats, e.g.: pick --after 20030301 pick --after 2003-03-01 pick --after 01-mar-2003 pick --after 2003-mar-01 pick --before '1 year ago' etc... * refile ** Linking messages between folders goes against the logic of Mailutils, so refile never makes links even if called with --link option. The latter is actually a synonym for --copy, which preserves the original message. ** --preserve option is not implemented. It is retained for backward compatibility only. ** Message specs and folder names may be interspersed. * sortm ** New option --numfield specifies numeric comparison for the given field. ** Any number of --datefield, --textfield and --numfield options may be given, thus allowing to build sort criteria of arbitrary complexity. ** The order of --.*field arguments sets the ordering priority. This differs from the behaviour of the standard sortm, which always orders datefield-major, textfield-minor. ** Apart from sorting the mailfolder the following actions may be specified: --list list the ordered messages using a format string given by --form or --format option. --dry-run do not actually sort messages, rather print what would have been done. This is useful for debugging purposes. * mhn ** New option --compose forces mhn editing mode. This is also the default mode. This differs from the standard mhn, which switches to the editing mode only if no other options were given and the input file name coincides with the value of "mhdraft" environment variable. ** Show mode (--show) *** If an appropriate mhn-show-type[/subtype] was not found, GNU mhn prints the decoded message content using moreproc. Standard mhn in this case used to print "don't know how to display content" diagnostic. *** The default behaviour is to pipe the content to the standard input of the mhn-show-type[/subtype] command. This is altered to using a temporary file if the command contains %f or %F escapes. ** Store mode (--store) *** If the Content-Disposition header contains "filename=", and mhn is invoked with --auto switch, it transforms the filename into the absolute notation and uses it only if it lies below the current mhn-storage directory. Standard mhn only requires that the filename do not begin with '/' *** Before saving a message part, GNU mhn checks if the file already exists. If so it asks whether the user wishes to rewrite it. This behaviour is disabled when --quiet option was given. Local variables: mode: outline paragraph-separate: "[ ]*$" end: