hmrc(4)

NAME
hmrc - Hypermail configuration file

DESCRIPTION
Hypermail can use a configuration file to allow you to customize the individual aspects of a list. In past versions of hypermail it was necessary for all hmrc variables to begin with 'hm_'. While still supported, it is not necessary to use the 'hm_' prefix any longer and this document reflects that. [This page is out of date. See the hmrc.html file for complete and up to date info.]

In the configuration file, blank lines and lines beginning with a hash mark (#) are considered comments and are ignored. The format of the "options" need to be in lowercase and separated with an equals (=) sign, such as:

    option = value
    mbox = /home/john/my_mailbox
    filemode = 0600

You can specify which configuration file to use on the command line or, if not specified, Hypermail will use the one specified as CONFIGFILE in options.h. If the first character is "~", Hypermail will look for the file under the current user's home directory.

CONFIGURATION OPTIONS

Below is a list of variables that Hypermail understands.

Boolean numbers can have the value of 0 or 1.

htmlsuffix = suffix
    Use this to specify the html file suffix to be used when Hypermail generates the html files. This is dependent on local needs. Do not put a '.' in the value. It would result in "file..html", probably not what you want.

language = two letter language specification
    This is a two-letter string specifying the default language to use, or a longer string specifying a language and locale. Set this the value of the language table you wish to use when running and generating archives.
    Current supported languages:
          de - German
          en - English
          es - Spanish
          fi - Finnish
          fr - French
          gr - Greek
          el - Greek
          is - Icelandic
          pl - Polish
          sv - Swedish The directory /usr/share/i18n/locales on many systems has the locale codes that are available on that system.

uselock = boolean_number
    Controls whether to use hypermail's built-in locking mechanism. By default, this option is set to 1. Set it to 0 if you have an external locking mechanism, like, for example, when using procmail or smartlist.

locktime = number-of-seconds
    Set this to the number of seconds that a lock should be honored when processing inbound messages. Defaults to 3600 seconds.

usemeta = boolean_number
    This option allows you to use metadata to store the content type of a MIME attachment and, later on, when a user browses the attachment, send back this information in the HTTP Content-Type header. When set to 1, the Content-Type header of a MIME attachment will be stored in a metadata file. Let us say that the MIME attachments for a message are stored in directory att-num. The metadata for those attachments will then be stored in directory att-num/.meta. If a MIME attachment is stored in file att-file, its metadata will be stored in file att-file.meta. This convention is directly compatible with the Apache server handling of metada.

mbox = filename
    This is the mailbox to read messages in from. Set this with a value of NONE to read from standard input.

ietf_mbox = boolean_number
    Setting this variable to 1 will tell hypermail that the mbox is formatted according to the IETF mbox convention: all lines, except for the envelope, are prefixed with a > char.

archives = URL
    This will create a link in the archived index pages labeled Other mail archives to the specified URL. Set this to NONE to omit such a link.

custom_archives = HTML text
    If this variable is defined, a navigation entry will be created below the sorted_by_x list entry, with the text Other mail archives: followed by the value of this variable. Set it to NONE to ommit such an entry.

about = URL
    This will create a link in the archived index pages labeled About this archive to the specified URL. Set this to NONE to omit such a link.

indextable = boolean_number
    Setting this variable to 1 will tell Hypermail to generate an message index Subject/Author/Date listings using a table format. Set to 0 if you want the standard Hypermail index page look and feel.

usetable = boolean_number
    Setting this variable to 1 will tell Hypermail to generate an index menu at the top and bottom of each page in a table format. Set to 0 if you want the standard Hypermail page look and feel.

reverse = boolean_number
    Setting this variable to 1 will reverse-sort the article entries in the date and thread index files by the date they were received. That is, the most recent messages will appear at the top of the index rather than the other way around.

showheaders = boolean_number
    Set this to 1 to show the article header lines in the archived HTML files. These lines typically include the To: , From: , and Subject: information found in most email messages.

showhtml = [ 0 | 1 | 2 ]
    Set this to 1 to show the articles in a proportionally-spaced font rather than a fixed-width (monospace) font. Set this to 2 for more complex conversion to html similar to that in txt2html.pl. Showhtml = 2 will normally produce nicer looking results than showhtml = 1, and showhtml = 0 will look pretty dull, but 1 and 2 run risks of altering the appearance in undesired ways.

showbr = boolean_number
    Set this to 1 to place <br> tags at the end of article lines. Otherwise, all non-quoted article lines will word wrap. This only takes effect if showhtml is enabled.

iquotes = boolean_number
    Set this to 1 to italicize quoted lines.

showhr = boolean_number
    Set this to 1 to place horizontal rules before and after articles.

show_msg_links = boolean_number
    Set this to 1 to put the individual message links at the top of the individual message pages. Set this to 0 to produce pages without the Next, Previous, Reply, In-Reply-To, etc. links.

eurodate = boolean_number
    Set this to 1 to display article received dates with days before months instead of months before days.

showreplies = boolean_number
    Set this to 1 to show all replies to a message as links in article files.

discard_dup_msgids = boolean_number
    Set this to 0 to accept messages with a Message-ID matching that of a message already in this archive. By default such messages are discarded.

require_msgids = boolean_number
    Set this to 0 to accept messages without a Message-ID header. Set this to 1 to discard messages without a Message-ID header. By default such messages are discarded.

spamprotect = boolean_number
    Set this to 1 to make hypermail not output real email addresses in the output HTML, but instead obfuscate them a little. By default email addresses are not obfuscated.

attachmentsindex = boolean_number
    Set this to 0 to make hypermail not output an index of articles with attachments. By default hypermail outputs this index.

dateformat = strftime date format
    Format used in strftime(3) call for displaying dates. See strftime(3) for the valid conversion specifications.

stripsubject = string
    A string to be stripped from all subject lines. Helps unclutter mailing lists which add tags to subject lines.

mailto = address
    The address of the contact point that is put in the HTML header line
       <LINK REV=made HREF=mailto:MAILTO>
    Setting this to NONE disables <LINK...> header generation.

mailcommand = command
    This specifies the mail command to use when converting email addresses to links. The variables $TO, $SUBJECT, and $ID can be used in constructing the command string.

$TO represents the address to send mail to,

$SUBJECT represents the subject that is being replied to, and

$ID represents the message ID of the article that is being replied to.

If defined as NONE , email addresses will not be converted to links in articles. A possible command one could use is mailto:$TO?subject=$SUBJECT and the Subject: would also be filled in. This can be changed to specify a CGI program such as /cgi-bin/mail?to=$TO . A CGI mail program is included with the source which can be used for this purpose.

domainaddr = domainname
    Set this to the domainname you want added to a mail address appearing in the RFC822 field which lack a hostname. When the list resides on the same host as the user sending the message, it is often not required of the MTA to domain-ize these addresses for delivery. In such cases, Hypermail will add the DOMAINADDR to the email address. If defined as NONE , this feature is turned off.

label = label name
    Define this as the label to put in archives.

dir = directory
    This is the directory that Hypermail will look for when creating and updating archives. If defined as NONE the directory will have the same name as the input mailbox.

Using date substitution cookies, you can tell Hypermail to archive messages in directories by the date they were received.

Substitution cookies supported
    %d - two digit day of month (1-28/30/31)
    %D - three letter day of the week
    %m - two digit month of year (1-12)
    %M - three letter month of year (Jan, ..., Dec)
    %y - four digit year (1990,..2001)

For example, if you wished to have Hypermail archive files by year and month, you might use

dir = /lists/somelist/%y/%M

When a message was received it would be put into a directory /lists/somelist/1998/Jun (if the message arrived in June of 1998). If the message arrives and there is no storage directory, Hypermail will automatically create it and store the message in the new directory.

attachmentlink = attachment link format

Substitution cookies supported:
    %p for the full path to the attachment
    %f for the file name part only
    %d for the directory name only
    %n for the message number
    %c for the content type string

dirmode = octal_number
    This is an octal number representing the permissions that new directories are set to when they are created. If the archives will be made publically available, it's a good idea to define this as 0755.

filemode = octal_number
    This is an octal number representing the file permissions that new files are set to when they are created. If the archives will be made publically available, it's a good idea to define this as 0644.

overwrite = boolean_number
    Set this to 1 to make Hypermail overwrite existing archives.

increment = boolean_number
    Set this to 1 to read one article only and append it to existing archives.

progress = [ 0 | 1 | 2 ]
    Set this to 1 or 2 to always show a progress report as Hypermail works. With a setting of 1, hypermail overwrites the progress information relating to attachment creation. With a setting of 2, attachment creation information is listed individually with the number of the message the attachments relate to. This is written to stdout.

thrdlevels = number
    This specifies the number of thread levels to outline in the thread index. For instance, if thrdlevels is 2, replies to messages will be indented once in the index, but replies to replies, etc., will only be indented once as well.

defaultindex = type
    This specifies the default index that users can view when entering the archive. Valid types are date, thread, author, and subject.

avoid_indices = which_index_files_not_to_use
    This is a list of index files to not generate. Valid types are date, thread, author, and subject.

ihtmlheaderfile = path
    Define path as the path to a template file containing valid HTML formatting statements that you wish to included at the top of every index page. Hypermail will print this file as the header of the index so make sure it contains <HTML>, <HEAD>, <BODY> and other statements that suit your local customized needs.

ihtmlfooterfile = path
    Define path as the path to a template file containing valid HTML formatting statements that you wish to included at the bottom of every index page. Hypermail will print this file as the trailer of the index so make sure it contains at a minimum a </BODY> and </HTML> statement.

mhtmlheaderfile = path
    Define path as the path to a template file containing valid HTML formatting statements that you wish to use at the top of every message page. Hypermail will print this file as the header of the message so make sure it contains <HTML>, <HEAD>, <BODY> and other statements that suit your local customized needs.

mhtmlfooterfile = path
    Define path as the path to a template file containing valid HTML formatting statements you wish to use at the bottom of every message page. Hypermail will print this file as the trailer of the message so make sure it contains at a minimum a </BODY> and </HTML> statement.

hmail = Mailing_List_Submission_Address
    Set this to the list's submission address. When enabled, this can be used to submit a new message to the list served by the hypermail archive. NONE means don't use it.

icss_url = URL
    This will link an external stylesheet found at the given URL to the index files. This will happen thru a LINK element in the index document's HEAD. By default this option is desactivated.

mcss_url = URL
    This will link an external stylesheet found at the given URL to the message files. This will happen thru a LINK element in the message document's HEAD. By default this option is desactivated.

show_headers = list_of_RFC_Headers_to_display
    This is the list of headers to be displayed if showheaders is set to 1 (TRUE). They can be listed comma or space separated all on a single line. If it contains the special character ``*'' hypermail will display all header lines.

readone = boolean_number
    Set this to 1 to specify there is only one message in the input.

inlinehtml = boolean_number
    This is used to make text/html parts to get inlined within the mail messages. If set to 0 , HTML-parts will be stored as separate files.

readone = boolean number
    Set this to 1 to specify there is only one message in the input.

text_types = MIME types to be treated as text/plain.
    This is a list of MIME types that you want hypermail to treat exactly as if they were text/plain. This can be listed individually on multiple lines or comma or space separated on a single line.

prefered_types = which alternative types to use
    When mails using multipart/mixed types are scanned, this is the list of alternative MIME types that you want used. This can be listed individually on multiple lines or comma or space separated on a single line. Note: Order is important.

inline_types = which_image_types_should_be_inlined
    This is the list of MIME types that you want inlined as opposed to simply linked into the message. They can be listed individually on multiple lines or comma or space separated on a single line.

ignore_types = types_of_MIME_attachments_to_ignore
    This is the list of MIME attachment types that you do not want to do anything with. They are quietly ignored. They can be listed individually on multiple lines or comma or space separated on a single line.

linkquotes = [ 0 | 1 ]
    Set this to On to create fine-grained links from quoted text to the text where the quote originated. It also improves the threads index file by more accurately matching messages with replies. Note that this may be rather cpu intensive (see the searchbackmsgnum option to alter the performance).

searchbackmsgnum = postive integer
    If the linkquotes option is on and an incremental update is being done (-u option), this controls the tradeoff between speed and the reliability of finding the right source for quoted text. Try to set it to the largest number of messages between a message and the final direct reply to that message.

link_to_replies = [ string | NONE]
    If the linkquotes option is on, specifying a string here causes it to generate links from original quoted text the location(s) in replies which quote them. The string is used to display the link.

quote_hide_threshold = percent (integer)
    If the linkquotes option is on, setting this to an integer less than 100 will cause it to replace quoted text with one-line links if the percent of lines in the message body (exluding the signature) consisting of quoted text exceeds the number indicated by this option.

quote_link_string = [ string | NONE ]
    If the quote_hide_threshold option is being used, the quote_link_string will be used if available to display the link that replaces the quoted text. If no string is specified here, the first line of each section of quoted text will used.

monthly_index = [ 0 | 1 ]
    Set this to On to create additional index files broken up by month. A summary.html file will provide links to all the monthly indices.

yearly_index = [ 0 | 1 ]
    Set this to On to create additional index files broken up by year. A summary.html file will provide links to all the yearly indices.

thread_file_depth = [ 0 | 1 ]
    If nonzero, break the threads index file into multiple files, with the initial message of each thread in the main index file along with links to files containing the replies. Setting this to 1 creates one file for each thread that has replies, and is recommended for archives with over a few hundred messages. Setting this greater than 1 will produce multiple levels of files for each thread whose replies are nested by more than 1 level, but that is rarely useful. This option is currently disabled if the indextable option is turned on, and probably needs to be less than thrdlevels.

HTML TEMPLATE FILE SUBSTITUTION COOKIES

You can insert "substitution cookies" in the header and footer HTML template files so appropriate information can be filled in at runtime.

Substitution cookies supported:

     %% - '%' character
     %~ - Storage directory
     %e - Email addres of message author - Not valid on index pages
     %h - HMURL
     %i - Message-id - Not valid on index pages
     %l - Archive label
     %m - Mailto address
     %p - PROGNAME
     %s - Subject of message or Index Title
     %v - VERSION
     %u - Expanded version link (HMURL,PROGNAME,VERSION)
     \n - newline character
     \t - tab character

Additional cookies generate the complete META lines:

     %A - Author META TAG - Not valid on index pages
     %D - Date META TAG - Not valid on index pages
     %S - Subject META TAG