diff --git a/ACKNOWLG b/ACKNOWLG
index 59b2780..d173701 100644
--- a/ACKNOWLG
+++ b/ACKNOWLG
@@ -1,6 +1,6 @@
ACKNOWLEDGEMENTS for MHonArc
-
- http://www.oac.uci.edu/indiv/ehood/mhonarc.html
+----------------------------
+
I would like to thank everyone who has given feedback on MHonArc.
Sorry for not listing everyone, but it has become too hard to keep
@@ -51,4 +51,4 @@ the following:
ISO-2022 encoded mail messages (ie. Japanese character set).
---------------------------------------------------------------------------
-Earl Hood, earlhood@usa.net
+Earl Hood, mhonarc@pobox.com
diff --git a/BUGS b/BUGS
index d785002..14411a5 100644
--- a/BUGS
+++ b/BUGS
@@ -1,7 +1,7 @@
Bug History for MHonArc
=======================
-
-@(#) BUGS 98/11/08 13:05:02
+
+@(#) BUGS 01/06/10 18:10:37
Each bug listing has the following fields:
@@ -16,6 +16,265 @@ Each bug listing has the following fields:
Bug List
------------------------------------------------------------------------
+Version: 2.4.8, and earlier
+Problem: Default CHARSETCONVERTERS values for latin[1-6] charsets
+ causing require error.
+Solution: This was supposedly fixed in 2.4.8 in mhinit.pl, but
+ apparently was not. The def-mime.mrc file in the
+ example directory did have the correct mappings.
+Version Fixed: 2.4.9
+------------------------------------------------------------------------
+Version: 2.4.8
+Problem: MHonArc aborts with Perl syntax errors if mhnull.pl
+ filter is loaded.
+Solution: Dump typo errors that should have been caught before
+ release. Syntax errors fixed in mhnull.pl.
+Version Fixed: 2.4.9
+------------------------------------------------------------------------
+Version: 2.4.7, and earlier
+Problem: Message with HTML content can cause perl to crash.
+ Other symptom would be that a stale .mhonarc.lck
+ directory would exist preventing further archive
+ updates.
+Solution: There appears to be a bug in perl's regex engine.
+ The fix was to change mhtxthtml.pl comment declaration
+ removal expression into a simplier one that just
+ munges (removes parts) to avoid crashes.
+Version Fixed: 2.4.8
+------------------------------------------------------------------------
+Version: 2.4.7, and earlier
+Problem: Prefixing second argument to $PGLINKLIST()$ with
+ a 'T' cause no thread page links to be rendered after
+ current thread index page.
+Solution: Fixed in mhrcvars.pl: Make sure to strip 'T' from
+ both arguments before evaluating numeric values.
+Version Fixed: 2.4.8
+------------------------------------------------------------------------
+Version: 2.4.7, and earlier
+Problem: Default CHARSETCONVERTERS values for latin[1-6] charsets
+ causing require error.
+Solution: Fixed in mhinit.pl (typo in library filename).
+Version Fixed: 2.4.8
+------------------------------------------------------------------------
+Version: 2.4.6, and earlier
+Problem: ADDRESSMODIFYCODE not stored in database.
+Solution: Fixed in mhdb.pl (a dumb typo)
+Version Fixed: 2.4.7
+------------------------------------------------------------------------
+Version: 2.4.6, and earlier
+Problem: TPARENT message specifier for applicable resource
+ variables will cause a resource variable to expand
+ to the empty string if there is no parent message
+ to the current message.
+Solution: If there is no parent message, TPARENT resolves to
+ to the current message.
+Version Fixed: 2.4.7
+------------------------------------------------------------------------
+Version: 2.4.5, maybe earlier
+Problem: Using message-ids with -rmm does not remove messages.
+Solution: Fixed in mhrmm.pl
+Version Fixed: 2.4.6
+------------------------------------------------------------------------
+Version: 2.4.5
+Problem: Japanese text messages not wrapped in PRE element.
+Solution: Fixed in mhtxtplain.pl
+Version Fixed: 2.4.6
+------------------------------------------------------------------------
+Version: 2.4.4
+Problem: $PGLINKLIST$ for threads did not work.
+Solution: Fixed in mhrcvars.pl.
+Version Fixed: 2.4.5
+------------------------------------------------------------------------
+Version: 2.4.4, and earlier
+Problem: -afs had no effect.
+Solution: Fixed in mhopt.pl: Option was not checked.
+Version Fixed: 2.4.5
+------------------------------------------------------------------------
+Version: 2.4.4, and earlier
+Problem: %y print 3 digits in time format strings if year 2000
+ or later.
+Solution: Fixed in mhtime.pl
+Version Fixed: 2.4.5
+------------------------------------------------------------------------
+Version: 2.4.0-4
+Problem:
tags are printed when decoding ISO-2022-JP
+ encoded header text.
+Solution: Fixed in iso2022jp.pl
+Version Fixed: 2.4.5
+------------------------------------------------------------------------
+Version: 2.4.3, and earlier
+Problem: Text/html filter died with a "Modification of
+ non-creatable array" error when a relative URL
+ exists in body data, but no base URL defined for
+ the html data.
+Solution: Fixed in mhtxthtml.pl
+Version Fixed: 2.4.4
+------------------------------------------------------------------------
+Version: 2.4.0 - 2.4.3
+Problem: Error "Can't modify keys in scalar assignment" occurs
+ when using older version of Perl 5.
+Solution: Later Perl 5 releases support keys operator as an
+ lvalue to preallocate a hash. Assignment put in
+ an eval block to avoid program termination.
+Version Fixed: 2.4.4
+------------------------------------------------------------------------
+Version: 2.3.0 - 2.4.3
+Problem: Setting IDXSIZE < MAXSIZE for a single page index
+ causes the generation of incorrect list entries and
+ null list entries.
+Solution: Fixed in mhindex.pl
+Version Fixed: 2.4.4
+------------------------------------------------------------------------
+Version: 2.4.3, and earlier
+Problem: Using entity references within MONTHS, WEEKDAYS, et al,
+ not supported and caused names to be incorrect.
+Solution: The semi-colon, ';', was treated as an undocumented
+ list separator in resource files. "Feature" removed.
+Version Fixed: 2.4.4
+------------------------------------------------------------------------
+Version: 2.4.2
+Problem: $*GMTDATE$ and $*LOCALDATE$ expand to the empty string
+ if using default time format string settings.
+Solution: Fixed in mhtime.pl
+Version Fixed: 2.4.3
+------------------------------------------------------------------------
+Version: 2.4.2, and earlier
+Problem: Multipart processing is done inproperly if nested
+ multiparts exist and "outer" multipart entity has a
+ boundary which is a substring prefix of an "inner"
+ multipart entity.
+Solution: Fixed in readmail.pl
+Version Fixed: 2.4.3
+------------------------------------------------------------------------
+Version: 2.4.2, and earlier
+Problem: Cid URL in multipart/related is not resolved if message
+ part being referenced is at a higher "level" (due to
+ nested multiparts) than the referrer.
+Solution: Fixed in readmail.pl
+Version Fixed: 2.4.3
+------------------------------------------------------------------------
+Version: 2.4.2, and earlier
+Problem: -tnosort and -tnosubsort should be -notsort and
+ -notsubsort. Also, bogus -tnoreverse and -notgziplinks
+ options listed in -help message.
+Solution: Fixed.
+Version Fixed: 2.4.3
+------------------------------------------------------------------------
+Version: 2.4.2, and earlier
+Problem: Charset parameter value not properly extracted when
+ no space after value and next parameter
+ (Example: charset=us-ascii;name="file.txt").
+Solution: Fixed in mhtxtplain.pl
+Version Fixed: 2.4.3
+------------------------------------------------------------------------
+Version: 2.4.1, and earlier
+Problem: M2H_URL envariable does not properly affect the URL
+ resource. M2H_SORT does affect it.
+Solution: Fixed (typo).
+Version Fixed: 2.4.2
+------------------------------------------------------------------------
+Version: 2.4.1, and earlier
+Problem: %c does not work in time format resources.
+Solution: Fixed.
+Version Fixed: 2.4.2
+------------------------------------------------------------------------
+Version: 2.4.1
+Problem: When invoking mha-dbrecover, Perl errors occur for
+ mhmsgfile.pl.
+Solution: Fixed.
+Version Fixed: 2.4.2
+------------------------------------------------------------------------
+Version: 2.4.0, and earlier
+Problem: DOC resource setting not stored in database.
+Solution: Fixed.
+Version Fixed: 2.4.1
+------------------------------------------------------------------------
+Version: 2.4.0
+Problem: Default filehandle changed to STDERR after call to
+ get_resources(). Can cause problems for Perl apps
+ calling MHonArc via API.
+Solution: Fixed.
+Version Fixed: 2.4.1
+------------------------------------------------------------------------
+Version: 2.4.0
+Problem: MHonArc under BSD OS would go into Win/MS-DOS mode.
+Solution: Make check for "dos" platform stricter in osinit.pl.
+Version Fixed: 2.4.1
+------------------------------------------------------------------------
+Version: 2.3.3
+Problem: Duplicate message-ids in a message's reference list
+ were not removed.
+Solution: Array changed to my() scope caused remove_dups()
+ to not do anything (it takes a typeglob). Array
+ changed back to local().
+Version Fixed: 2.4.0
+------------------------------------------------------------------------
+Version: 2.3.0-3
+Problem: TFIRST, TLAST, and PARENT arguments to resource
+ variables always produced null values.
+Solution: Fixed. Note, PARENT is now TPARENT to be consistent
+ with other thread-related arguments.
+Version Fixed: 2.4.0
+------------------------------------------------------------------------
+Version: 2.3.0-3
+Problem: SUBJECTHEADER resource not printed when -savemem is
+ used.
+Solution: Problem is due to the new resource variable handling
+ in 2.3. The solution is to support the editing of
+ SUBJECTHEADER (and HEADBODYSEP) in existing message
+ pages.
+Version Fixed: 2.4.0
+------------------------------------------------------------------------
+Version: 2.3.3, and earlier versions
+Problem: Multipart processing not done properly if boundary
+ parameter not enclosed in quotes and is terminated
+ by a semi-colon.
+Solution: Fixed in readmail.pl.
+Version Fixed: 2.4.0
+------------------------------------------------------------------------
+Version: 2.3.3, and earlier versions
+Problem: %h not recognized in time format strings.
+Solution: Fixed.
+Version Fixed: 2.4.0
+------------------------------------------------------------------------
+Version: 2.3.3
+Problem: Use of $ICON$ will generate defective tag like
+ `ALT="[text/plain]">'.
+Solution: Fixed typo in join() call in mhrcvars.pl.
+Version Fixed: 2.4.0
+------------------------------------------------------------------------
+Version: 2.3.3, and earlier versions
+Problem: Some messages with specified inline images are not
+ having images inlined.
+Solution: Content-Disposition parsing fixed.
+Version Fixed: 2.4.0
+------------------------------------------------------------------------
+Version: 2.3.3, and earlier versions
+Problem: Clip length not handled properly in resource variables.
+ Ie. Characters that are translated into entity
+ references are not handled properly when computing clip
+ adjustment. Incorrect clipping can occur.
+Solution: Fixed.
+Version Fixed: 2.4.0
+------------------------------------------------------------------------
+Version: 2.3.3, and some possible earlier versions
+Problem: MHonArc checking for writable OUTDIR in SINGLE mode.
+Solution: Fixed.
+Version Fixed: 2.4.0
+------------------------------------------------------------------------
+Version: 2.3.3, and earlier
+Problem: Default resource file not read if located in MHonArc
+ lib directory.
+Solution: Fixed improper assumption of @INC setting.
+Version Fixed: 2.4.0
+------------------------------------------------------------------------
+Version: 2.3.3, and earlier
+Problem: TLIEND not generated at proper times when thread level
+ goes beyond TLEVELS.
+Solution: A check is made in thread index printing to generate a
+ TLIEND properly for TLITXT when deeper than TLEVELS.
+Version Fixed: 2.4.0
+------------------------------------------------------------------------
Version: 2.3.0-2.3.2
Problem: -otherindex and -perlinc command-line options do not
work. Using them has no affect.
diff --git a/CHANGES b/CHANGES
index 7761861..ce601d6 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,34 +1,423 @@
- Version History for MHonArc
- ===========================
-
+ Change History for MHonArc
+ ==========================
+
-Version history for MHonArc. Changes listed are brief. Consult
-the documentation for further information/clarification. It is
-possible that not all changes are documented here.
+Change history for MHonArc. Changes listed are brief. Consult the
+documentation for further information/clarification. It is possible
+that not all changes are documented here.
MM/DD/YYYY
=======================================================================
#######################################################################
+=======================================================================
+06/10/2001 (2.4.9)
+
+ o Added the following resources:
+
+ MIMEEXCS List of content-types to exclude
+ from processing. Exclusion occurs
+ before data is passed to filters.
+
+ o mhtxtplain.pl: If decoding uuencoded data, the data will
+ be excluded if application/octet-stream is listed the
+ MIMEEXCS resource.
+
+ o mhtxthtml.pl: If a CID URL is not available, the CID URL
+ is no longer preserved in the converted output. The CID
+ URL is stripped.
+
+ o Added the following to mhmimetypes.pl content-type table:
+
+ application/ms-excel => xls:MS-Excel spreadsheet
+ application/ms-powerpoint => ppt:MS-Powerpoint presentation
+ application/ms-project => mpp:MS-Project file
+
+ The "vnd." official versions are already present, but
+ some application use the above.
+
+ o TODO list added to distribution.
+
+ Bug Fixes
+ ---------
+ See BUGS.
+
+=======================================================================
+04/13/2001 (2.4.8)
+
+ o Added the following resources:
+
+ KEEPONRMM Do not remove message files from disk
+ when messages are removed from the
+ archive.
+
+ o m2h_text_plain::filter now uses CHARSETCONVERTERS for
+ translating text data with a specified charset parameter.
+ The only exception is iso-2022-jp, which is handled directly
+ to properly support nourl flag.
+
+ o m2h_external::filter new arguments:
+
+ excludeexts=ext1,...
+ A comma separated list of message specified filename
+ extensions to exclude. I.e. If the filename
+ extension matches an extension in excludeexts, the
+ content will not be written. The return markup
+ will contain the name of the attachment, but no
+ link to the data. This option is best used with
+ application/octet-stream to exclude unwanted data
+ that is not tagged with the proper content-type.
+ The m2h_null::filter can be used to exclude content
+ by content-type.
+
+ o m2h_null::filter will now output a one line description
+ of the excluded content. This is so the reader knows that
+ there was message content not saved within the archive.
+
+ o m2h_text_plain::filter new arguments:
+
+ usename If extracting uuencoded data, the filename
+ specified should be used.
+
+ o m2h_text_html::filter new arguments:
+
+ allowcomments Preserve any comment declarations. Normally
+ Comment declarations are munged to prevent
+ SSI attacks or comments that can conflict
+ with MHonArc processing. Use this option
+ with care.
+
+ (NOTE: Comment declarations were completely stripped before,
+ but the regex used was known to crash perl on large comment
+ declarations, so a simplier expression is now used to
+ modify comment declarations to prevent possible attacks.)
+
+
+ Bug Fixes
+ ---------
+ See BUGS.
+
+=======================================================================
+10/28/2000 (2.4.7)
+
+ o Added the following options to m2h_text_plain::filter:
+
+ attachcheck Honor attachment disposition. By default,
+ all text/plain data is displayed inline on
+ the message page. If attachcheck is specified
+ and Content-Disposition specifies the data as
+ an attachment, the data is saved to a file
+ with a link to it from the message page.
+ htmlcheck Check if message is actually an HTML message
+ (to get around abhorrent MUAs). The message
+ is treated as HTML if the first non-whitespace
+ data looks like the start of an HTML document.
+
+ o FROMFIELD resource default value is now:
+
+ from:mail-reply-to:reply-to:return-path:apparently-from:
+ sender:resent-sender
+
+ The change is the addition of "mail-reply-to."
+
+ o Added the following resource variables:
+
+ $MSGTORDNUM$ Ordinal number of message in current
+ thread.
+
+ o Added the following resource variable message specificiers:
+
+ TEND Last message of current discussion
+ thread.
+ TTOP Top/root message of current discussion
+ thread.
+
+ o Changes to readmail.pl:
+ - %Cid hash keys are now URLs. Content-Ids are denoted
+ as "cid:..." Hash also contains Content-Location values
+ of message parts. This allows filters (like the HTML
+ filter) to check for external URL references where
+ the data for the reference is included with the message.
+ - More robust handling of malformed multipart messages.
+
+ o The null filter is applied to application/ms-tnef by default.
+
+ o Lowercase tag names are now used in default resource values
+ that contain HTML markup.
+
+ o Bug fixes to the documentation.
+
+
+ Bug Fixes
+ ---------
+ See BUGS.
+
+=======================================================================
+04/24/2000 (2.4.6)
+
+ o Stricter check is made when decoded quoted-printable data.
+ An escape sequence is only converted to a raw character if
+ a it is a valid escape sequence. I.e. Any '=' not followed
+ by two hexadecimal characters is left as-is.
+
+ o Call to Digest::MD5::md5_hex() wrapped in eval block in
+ case of bad installations of Digest::MD5 module.
+
+ Bug Fixes
+ ---------
+ See BUGS.
+
+=======================================================================
+02/14/2000 (2.4.5)
+
+ Enhancements/Changes
+ --------------------
+ o Following changes to m2h_text_html::filter:
+ - All comment declarations are removed. This avoid
+ potential SSI attacks and declarations that may conflict
+ with MHonArc.
+ - Additional tags have been added to the to-strip list
+ to avoid potential client-side scripting attacks. See
+ MIMEFILTERS docs for list.
+ - Added "nofont" option to strip out any tags.
+
+ o Added application/x-bzip2 to known mime types (mhmimetypes.pl).
+
+ o Simple modification to get_time_from_date() in mhutil.pl to
+ handle abhorrent case of message date using a 2 digit year.
+
+ o Under VMS, the default lock file name has been changed to
+ "mhonarc_lck" for directory based locking will work.
+
+ o mhonarc::htmlize/entify now translates the double-quote
+ character (") to ".
+
+ o Added VARREGEX resource to allow customization of resource
+ variable matching. Mainly for use with resource files written
+ on multibyte charsets like SJIS. Use with caution.
+
+ Bug Fixes
+ ---------
+ See BUGS.
+
+=======================================================================
+10/01/1999 (2.4.4)
+
+ Enhancements/Changes
+ --------------------
+ o Added the following resources:
+
+ MIMEDECODERS Content-Transfer-Encoding decoding
+ functions.
+
+ o Added the following resource variables:
+
+ $PGLINKLIST$ Print out a list of index page links.
+
+ o New content filter for message/external-body.
+
+ o Message/delivery-status content handled by mhtxtplain.pl
+
+ o Support for "Zone[+-]DDDD" timezone specification.
+
+ o MAILparse_parameter_str() function added to readmail.pl.
+ Function supports parsing parameter value strings with support
+ for RFC 2184 extensions. Function added to provide
+ support for message/external-body filter.
+
+ Bug Fixes
+ ---------
+ See BUGS.
+
+=======================================================================
+08/15/1999 (2.4.3)
+
+ Enhancements/Changes
+ --------------------
+ o Added the following resources:
+
+ POSIXSTRFTIME Use POSIX::strftime() or not for
+ processing time format strings
+
+ o The "latin[1-6]" character sets defined in the default
+ value of CHARSETCONVERTERS. iso8859::str2sgml modified
+ to use proper iso8859 map for specified latin[1-6]
+ specification.
+
+ o The text/html filter now strips out scripting markup by
+ default. To allow scripting markup to be preserved, the
+ "allowscript" option can be used.
+
+ o Unknown media-types are now treated as application/octet-stream,
+ which will invoke the application/octet-stream filter.
+ Because of this, an explicit entry for application/octet-stream
+ has been added to the default value of MIMEFILTERS.
+
+ o If in a multipart/alternative entity, and no known media-types
+ exists, the last part is treated as application/octet-stream.
+
+ Bug Fixes
+ ---------
+ See BUGS.
+
+=======================================================================
+08/11/1999 (2.4.2)
+
+ Enhancements/Changes
+ --------------------
+ o Added the following resources:
+
+ STDIN Source for standard input
+
+ o Added the following resource variables:
+
+ $ENV$ Print an environment variable
+
+ o Added support for decoding uuencoded data within text
+ messages in mhtxtplain.pl. Decoding activated via the
+ "uudecode" option.
+
+ o For processing time format strings, POSIX::strftime() is
+ used, if available. If not, MHonArc implementation is
+ used.
+
+ o The default value of FROMFIELDS now includes "return-path".
+
+ o Description section moved before Options section in -help
+ message.
+
+ Bug Fixes
+ ---------
+ See BUGS.
+
+=======================================================================
+07/25/1999 (2.4.1)
+
+ Enhancements/Changes
+ --------------------
+ o Added the following resources:
+
+ MSGEXCFILTER Perl expressions for excluding
+ messages from archive.
+ SAVERESOURCES Flag if resource values should be
+ saved in database.
+
+ o Added the following resource variables:
+
+ $HTMLEXT$ Value of HTMLEXT resource.
+
+ o Documentation corrections an additions.
+
+ o Use of typeglobs removed from mhdb.pl.
+
+ o mhtime.pl explicitly defined in mhonarc package.
+
+ Bug Fixes
+ ---------
+ See BUGS.
+
+=======================================================================
+06/25/1999 (2.4.0)
+
+ Enhancements/Changes
+ --------------------
+ o Added the following resources:
+
+ ADDRESSMODIFYCODE Perl expressions to apply to addresses
+ during message header conversion.
+ CHECKNOARCHIVE Check "no archive" flag in messages.
+ LOCKMETHOD The type of archive locking performed.
+ SPAMMODE Perform actions to deter email address
+ harvesters.
+ SSMARKUP Markup at the *very* beginning of any
+ generated page.
+ STDOUT Destination of stdout messages/data.
+ STDERR Destination of stderr messages/data.
+ SUBJECTTHREADS To check, or not to check, subjects when
+ computing threads.
+
+ o Added the following resource variables:
+
+ $FROMADDRNAME$ Username portion of From email address.
+ $FROMADDRDOMAIN$ Domain portion of From email address.
+ $TOADDRNAME$ Username portion of an email address
+ (applicable in MAILTOURL only).
+ $TOADDRDOMAIN$ Domain portion of an email address
+ (applicable in MAILTOURL only).
+
+ o A new utility program: mha-decode. The program functions
+ as a MIME message decoder. Can be used against mail folders
+ or single messages.
+
+ o The "PARENT" argument to applicable resource variables is now
+ called "TPARENT". This change should not affect anyone since
+ the "PARENT" argument did not work properly in previous
+ releases.
+
+ o SUBJECTHEADER and HEADBODYSEP resource changes will now affect
+ existing messages that are edited during normal operations or
+ via EDITIDX. Note, messages created from old versions of
+ MHonArc may not be affected.
+
+ o The default TIMEZONES settings now has a more complete list.
+
+ o Timezone acronym settings now support [+-]HHMM specifications.
+
+ o Support for ISO-2022-JP encoded strings in message headers
+ is now supported. It does assume that HTML viewer supports
+ ISO-2022-JP.
+
+ o If Digest::MD5 is installed, md5_hex() will be used to create
+ message-ids for messages without message-ids. This allows
+ MHonArc to ignore non-message-id archived messages in ADD mode.
+ The MD5 digest is computed only on message header for efficieny.
+ If Digest::MD5 is not installed, a message-id will still be
+ assigned if none present, but MHonArc will not be able to
+ detect if message has already been archived in subsequent ADD
+ operations.
+
+ o Text/html filter supports the "noscript" option. If
+ specified, any script-related markup will be removed.
+ This provides added security to avoid sites being compromised
+ with foreign client-side scripting.
+
+ o Added the following options to mhexternal.pl (the save-to-file
+ filter): forceattach, forceinline, and inlineexts.
+
+ o Recognize mailing list headers as defined by RFC 2369 and
+ hyperlink URLs listed.
+
+ o If no boundaries exist in a multipart message (even though
+ a boundary is defined in the header), MHonArc will treat
+ the entire body as the first part. This prevents "unable
+ to process" warnings.
+
+ o The "/;
+ if (/^/) {
+ push(@field, $1);
+ push(@{$field{$1}}, mhonarc::entify(mhonarc::uncommentize($2)));
+ }
+ }
+
+ my $atitle = $Rc->{archive}{$arch}[0];
+ print <
+
+
$atitle: $msgnum
+
+EOT
+
+ my %printed = ();
+ foreach $field (@field) {
+ next if $printed{$field};
+ $printed{$field} = 1;
+ print qq(
To report a bug against MHonArc, send mail to
-mhonarc@ncsa.uiuc.edu and
-please include the following information:
+
To report a bug against MHonArc, send mail to the MHonArc
+mailing list,
+mhonarc@ncsa.uiuc.edu. The list
+is closed to subscribers, so if you are not subscribed, you can
+send mail to mhonarc@mhonarc.org.
+
+
+
Please include the following information in your message:
in the
documentation to see if the bug has already been reported (and maybe
fixed). You may need to go the
-MHonArc
+MHonArc
home page
to check the bug list in case you are not using the latest version
of MHonArc.
@@ -74,6 +84,811 @@
Default CHARSETCONVERTERS values for latin[1-6] charsets causing require error.
+
+
+
+
Solution
+
This was supposedly fixed in 2.4.8 in mhinit.pl, but apparently was not. The def-mime.mrc file in the
+ example directory did have the correct mappings.
+
+
+
+
Fixed
+
2.4.9
+
+
+
+
+
+
Version
+
2.4.8
+
+
+
Problem
+
MHonArc aborts with Perl syntax errors if mhnull.pl filter is loaded.
+
+
+
+
Solution
+
Dump typo errors that should have been caught before release. Syntax errors fixed in mhnull.pl.
+
+
+
+
Fixed
+
2.4.9
+
+
+
+
+
+
Version
+
2.4.7, and earlier
+
+
+
Problem
+
Message with HTML content can cause perl to crash. Other symptom would be that a stale .mhonarc.lck
+ directory would exist preventing further archive
+ updates.
+
+
+
+
Solution
+
There appears to be a bug in perl's regex engine. The fix was to change mhtxthtml.pl comment declaration
+ removal expression into a simplier one that just
+ munges (removes parts) to avoid crashes.
+
+
+
+
Fixed
+
2.4.8
+
+
+
+
+
+
Version
+
2.4.7, and earlier
+
+
+
Problem
+
Prefixing second argument to $PGLINKLIST()$ with a 'T' cause no thread page links to be rendered after
+ current thread index page.
+
+
+
+
Solution
+
Fixed in mhrcvars.pl: Make sure to strip 'T' from both arguments before evaluating numeric values.
+
+
+
+
Fixed
+
2.4.8
+
+
+
+
+
+
Version
+
2.4.7, and earlier
+
+
+
Problem
+
Default CHARSETCONVERTERS values for latin[1-6] charsets causing require error.
+
+
+
+
Solution
+
Fixed in mhinit.pl (typo in library filename).
+
+
+
Fixed
+
2.4.8
+
+
+
+
+
+
Version
+
2.4.6, and earlier
+
+
+
Problem
+
ADDRESSMODIFYCODE not stored in database.
+
+
+
Solution
+
Fixed in mhdb.pl (a dumb typo)
+
+
+
Fixed
+
2.4.7
+
+
+
+
+
+
Version
+
2.4.6, and earlier
+
+
+
Problem
+
TPARENT message specifier for applicable resource variables will cause a resource variable to expand
+ to the empty string if there is no parent message
+ to the current message.
+
+
+
+
Solution
+
If there is no parent message, TPARENT resolves to to the current message.
+
+
+
+
Fixed
+
2.4.7
+
+
+
+
+
+
Version
+
2.4.5, maybe earlier
+
+
+
Problem
+
Using message-ids with -rmm does not remove messages.
+
+
+
Solution
+
Fixed in mhrmm.pl
+
+
+
Fixed
+
2.4.6
+
+
+
+
+
+
Version
+
2.4.5
+
+
+
Problem
+
Japanese text messages not wrapped in PRE element.
+
+
+
Solution
+
Fixed in mhtxtplain.pl
+
+
+
Fixed
+
2.4.6
+
+
+
+
+
+
Version
+
2.4.4
+
+
+
Problem
+
$PGLINKLIST$ for threads did not work.
+
+
+
Solution
+
Fixed in mhrcvars.pl.
+
+
+
Fixed
+
2.4.5
+
+
+
+
+
+
Version
+
2.4.4, and earlier
+
+
+
Problem
+
-afs had no effect.
+
+
+
Solution
+
Fixed in mhopt.pl: Option was not checked.
+
+
+
Fixed
+
2.4.5
+
+
+
+
+
+
Version
+
2.4.4, and earlier
+
+
+
Problem
+
%y print 3 digits in time format strings if year 2000 or later.
+
+
+
+
Solution
+
Fixed in mhtime.pl
+
+
+
Fixed
+
2.4.5
+
+
+
+
+
+
Version
+
2.4.0-4
+
+
+
Problem
+
<PRE> tags are printed when decoding ISO-2022-JP encoded header text.
+
+
+
+
Solution
+
Fixed in iso2022jp.pl
+
+
+
Fixed
+
2.4.5
+
+
+
+
+
+
Version
+
2.4.3, and earlier
+
+
+
Problem
+
Text/html filter died with a "Modification of non-creatable array" error when a relative URL
+ exists in body data, but no base URL defined for
+ the html data.
+
+
+
+
Solution
+
Fixed in mhtxthtml.pl
+
+
+
Fixed
+
2.4.4
+
+
+
+
+
+
Version
+
2.4.0 - 2.4.3
+
+
+
Problem
+
Error "Can't modify keys in scalar assignment" occurs when using older version of Perl 5.
+
+
+
+
Solution
+
Later Perl 5 releases support keys operator as an lvalue to preallocate a hash. Assignment put in
+ an eval block to avoid program termination.
+
+
+
+
Fixed
+
2.4.4
+
+
+
+
+
+
Version
+
2.3.0 - 2.4.3
+
+
+
Problem
+
Setting IDXSIZE < MAXSIZE for a single page index causes the generation of incorrect list entries and
+ null list entries.
+
+
+
+
Solution
+
Fixed in mhindex.pl
+
+
+
Fixed
+
2.4.4
+
+
+
+
+
+
Version
+
2.4.3, and earlier
+
+
+
Problem
+
Using entity references within MONTHS, WEEKDAYS, et al, not supported and caused names to be incorrect.
+
+
+
+
Solution
+
The semi-colon, ';', was treated as an undocumented list separator in resource files. "Feature" removed.
+
+
+
+
Fixed
+
2.4.4
+
+
+
+
+
+
Version
+
2.4.2
+
+
+
Problem
+
$*GMTDATE$ and $*LOCALDATE$ expand to the empty string if using default time format string settings.
+
+
+
+
Solution
+
Fixed in mhtime.pl
+
+
+
Fixed
+
2.4.3
+
+
+
+
+
+
Version
+
2.4.2, and earlier
+
+
+
Problem
+
Multipart processing is done inproperly if nested multiparts exist and "outer" multipart entity has a
+ boundary which is a substring prefix of an "inner"
+ multipart entity.
+
+
+
+
Solution
+
Fixed in readmail.pl
+
+
+
Fixed
+
2.4.3
+
+
+
+
+
+
Version
+
2.4.2, and earlier
+
+
+
Problem
+
Cid URL in multipart/related is not resolved if message part being referenced is at a higher "level" (due to
+ nested multiparts) than the referrer.
+
+
+
+
Solution
+
Fixed in readmail.pl
+
+
+
Fixed
+
2.4.3
+
+
+
+
+
+
Version
+
2.4.2, and earlier
+
+
+
Problem
+
-tnosort and -tnosubsort should be -notsort and -notsubsort. Also, bogus -tnoreverse and -notgziplinks
+ options listed in -help message.
+
+
+
+
Solution
+
Fixed.
+
+
+
Fixed
+
2.4.3
+
+
+
+
+
+
Version
+
2.4.2, and earlier
+
+
+
Problem
+
Charset parameter value not properly extracted when no space after value and next parameter
+ (Example: charset=us-ascii;name="file.txt").
+
+
+
+
Solution
+
Fixed in mhtxtplain.pl
+
+
+
Fixed
+
2.4.3
+
+
+
+
+
+
Version
+
2.4.1, and earlier
+
+
+
Problem
+
M2H_URL envariable does not properly affect the URL resource. M2H_SORT does affect it.
+
+
+
+
Solution
+
Fixed (typo).
+
+
+
Fixed
+
2.4.2
+
+
+
+
+
+
Version
+
2.4.1, and earlier
+
+
+
Problem
+
%c does not work in time format resources.
+
+
+
Solution
+
Fixed.
+
+
+
Fixed
+
2.4.2
+
+
+
+
+
+
Version
+
2.4.1
+
+
+
Problem
+
When invoking mha-dbrecover, Perl errors occur for mhmsgfile.pl.
+
+
+
+
Solution
+
Fixed.
+
+
+
Fixed
+
2.4.2
+
+
+
+
+
+
Version
+
2.4.0, and earlier
+
+
+
Problem
+
DOC resource setting not stored in database.
+
+
+
Solution
+
Fixed.
+
+
+
Fixed
+
2.4.1
+
+
+
+
+
+
Version
+
2.4.0
+
+
+
Problem
+
Default filehandle changed to STDERR after call to get_resources(). Can cause problems for Perl apps
+ calling MHonArc via API.
+
+
+
+
Solution
+
Fixed.
+
+
+
Fixed
+
2.4.1
+
+
+
+
+
+
Version
+
2.4.0
+
+
+
Problem
+
MHonArc under BSD OS would go into Win/MS-DOS mode.
+
+
+
Solution
+
Make check for "dos" platform stricter in osinit.pl.
+
+
+
Fixed
+
2.4.1
+
+
+
+
+
+
Version
+
2.3.3
+
+
+
Problem
+
Duplicate message-ids in a message's reference list were not removed.
+
+
+
+
Solution
+
Array changed to my() scope caused remove_dups() to not do anything (it takes a typeglob). Array
+ changed back to local().
+
+
+
+
Fixed
+
2.4.0
+
+
+
+
+
+
Version
+
2.3.0-3
+
+
+
Problem
+
TFIRST, TLAST, and PARENT arguments to resource variables always produced null values.
+
+
+
+
Solution
+
Fixed. Note, PARENT is now TPARENT to be consistent with other thread-related arguments.
+
+
+
+
Fixed
+
2.4.0
+
+
+
+
+
+
Version
+
2.3.0-3
+
+
+
Problem
+
SUBJECTHEADER resource not printed when -savemem is used.
+
+
+
+
Solution
+
Problem is due to the new resource variable handling in 2.3. The solution is to support the editing of
+ SUBJECTHEADER (and HEADBODYSEP) in existing message
+ pages.
+
+
+
+
Fixed
+
2.4.0
+
+
+
+
+
+
Version
+
2.3.3, and earlier versions
+
+
+
Problem
+
Multipart processing not done properly if boundary parameter not enclosed in quotes and is terminated
+ by a semi-colon.
+
+
+
+
Solution
+
Fixed in readmail.pl.
+
+
+
Fixed
+
2.4.0
+
+
+
+
+
+
Version
+
2.3.3, and earlier versions
+
+
+
Problem
+
%h not recognized in time format strings.
+
+
+
Solution
+
Fixed.
+
+
+
Fixed
+
2.4.0
+
+
+
+
+
+
Version
+
2.3.3
+
+
+
Problem
+
Use of $ICON$ will generate defective tag like `ALT="[text/plain]">'.
+
+
+
+
Solution
+
Fixed typo in join() call in mhrcvars.pl.
+
+
+
Fixed
+
2.4.0
+
+
+
+
+
+
Version
+
2.3.3, and earlier versions
+
+
+
Problem
+
Some messages with specified inline images are not having images inlined.
+
+
+
+
Solution
+
Content-Disposition parsing fixed.
+
+
+
Fixed
+
2.4.0
+
+
+
+
+
+
Version
+
2.3.3, and earlier versions
+
+
+
Problem
+
Clip length not handled properly in resource variables. Ie. Characters that are translated into entity
+ references are not handled properly when computing clip
+ adjustment. Incorrect clipping can occur.
+
+
+
+
Solution
+
Fixed.
+
+
+
Fixed
+
2.4.0
+
+
+
+
+
+
Version
+
2.3.3, and some possible earlier versions
+
+
+
Problem
+
MHonArc checking for writable OUTDIR in SINGLE mode.
+
+
+
Solution
+
Fixed.
+
+
+
Fixed
+
2.4.0
+
+
+
+
+
+
Version
+
2.3.3, and earlier
+
+
+
Problem
+
Default resource file not read if located in MHonArc lib directory.
+
+
+
+
Solution
+
Fixed improper assumption of @INC setting.
+
+
+
Fixed
+
2.4.0
+
+
+
+
+
+
Version
+
2.3.3, and earlier
+
+
+
Problem
+
TLIEND not generated at proper times when thread level goes beyond TLEVELS.
+
+
+
+
Solution
+
A check is made in thread index printing to generate a TLIEND properly for TLITXT when deeper than TLEVELS.
+
Three types of messages exist in MHonArc:
Informative messages, Warnings, and
Errors. Informative messages give you the
-current status of MHonArc's execution. Warnings
+current status of MHonArc's execution. Warnings
signify undesired conditions, but are not critical in
-MHonArc's exection. Errors signify critical
-conditions that inhibit MHonArc from finishing its task.
+MHonArc's exection. Errors signify critical
+conditions that inhibit MHonArc from finishing its task.
Another set of messages exists that are generated from the Perl
-interpreter itself. MHonArc tries its best to catch any
+interpreter itself. MHonArc tries its best to catch any
conditions that may cause Perl to abnormally abort, but conditions
may arise where this is not possible.
This section describes
-the various diagnostics MHonArc may produce and messages
+the various diagnostics MHonArc may produce and messages
Perl may produce.
No new mail messages exist when performing an add operation to an
archive. This can occur if an empty MH mail folder, or empty
-mailbox file, is passed to MHonArci; or the folder
+mailbox file, is passed to MHonArc; or the folder
contains messages already in the archive.
Trying to lock mail archive ...
The statement means that a lock file is in place for the archive
-you are trying to update. Normally, an existing lock file implies
-that another MHonArc process is currently using the archive,
-and other MHonArc processes will wait awhile to see if the
-archive will be unlocked.
-
-
However, there are times when a lock file exists, but no
-MHonArc process is modifying the archive. This can occur
-if MHonArc is abnormally terminated. If you know that no
-other MHonArc process is editting the archive you are
+you are trying to update. Normally, an existing lock file implies
+that another MHonArc process is currently using the archive,
+and other MHonArc processes will wait awhile to see if the
+archive will be unlocked.
+The time MHonArc waits can be modified
+by the LOCKTRIES and
+LOCKDELAY resources.
+
+
+
There are times when a lock file exists, but no
+MHonArc process is modifying the archive. This can occur
+if MHonArc is abnormally terminated. If you know that no
+other MHonArc process is editing the archive you are
try to modify, then manually remove the lock file or use the
-FORCE resource.
If LOCKMETHOD
+is set to flock, then the lock file should never be
+manually deleted. When MHonArc abnormally terminates, then the
+lock will be automatically released when the flock method
+is used. A stale lock can still occur under the flock
+method if for some reason a MHonArc
+process hangs. In this case, just kill the offending process and
+the lock will automatically be released.
+
MHonArc was unable to find a date for a
mail message, or could not parse the date if the date is not
in a common format. The message is given the current date
if no date is found.
@@ -77,19 +106,19 @@
Warning: Could not find date for message
Warning: Database (dbversion)
!= program (prgversion) version
-
Indicates that the version of MHonArc updating an archive
-is different from the version of MHonArc that created the
+
Indicates that the version of MHonArc updating an archive
+is different from the version of MHonArc that created the
database file. Problems can arise if the database file changes in
-format from different version of MHonArc. See the release
-notes of the MHonArc distribution if changes in the databse
+format from different version of MHonArc. See the release
+notes of the MHonArc distribution if changes in the databse
format will effect older archives.
Warning: Unable to create outdir/dbfile
-
Indicates MHonArc was unable to create the
+
Indicates MHonArc was unable to create the
database file dbfile for the mail archive
created/modified in outdir. This message can occur if
-outdir permissions changed during MHonArc
+outdir permissions changed during MHonArc
execution, the existing dbfile is read-only, or the
file system is full.
@@ -98,43 +127,43 @@
Warning: Unable to create outdir/dbfile
Warning: Unable to open footer: footer
-
MHonArc was unable to open the footer file,
+
MHonArc was unable to open the footer file,
footer, for inclusion into the index page. Make sure
footer exists, and is readable by you.
Warning: Unable to open header: header
-
MHonArc was unable to open the header file,
+
MHonArc was unable to open the header file,
header, for inclusion into the index page. Make sure
header exists, and is readable by you.
Warning: Unable to open folder
-
MHonArc was unable to open the specified mail
+
MHonArc was unable to open the specified mail
folder for reading. Make sure folder
exists and is readable (and executable if a directory) by you.
Warning: Unable to open message: folder/message
-
MHonArc was unable to open the specified MH
+
MHonArc was unable to open the specified MH
mail message folder/message for reading. Make sure
folder/message exists and is readable by you.
Warning: Unable to open resource file: file
-
MHonArc was unable to open the resource file,
+
MHonArc was unable to open the resource file,
file, for reading. Make sure file exists, and
is readable by you.
Warning: Undefined time zone: "timezone"
-
MHonArc has found an unrecognized timezone
+
MHonArc has found an unrecognized timezone
acronym, timezone, in a mail
-message. You can tell MHonArc about other timezone
+message. You can tell MHonArc about other timezone
acronyms, and their hour offset to UTC, by using the TIMEZONES resource
Errors denote conditions that cause MHonArc to abort
+
Errors denote conditions that cause MHonArc to abort
execution.
-
Some error conditions may cause the MHonArc archive to
-become corrupted. If the error occurs when MHonArc is writing
+
Some error conditions may cause the MHonArc archive to
+become corrupted. If the error occurs when MHonArc is writing
files, you may have to recreate the archive from the original messages.
@@ -161,7 +190,7 @@
ERROR: Database read error of dbfile
ERROR: Unable to create file
-
MHonArc was unable to create file. This
+
MHonArc was unable to create file. This
message can occur if the directory being written to is not writable, a
read-only file with the same name exists, or the file system is full.
@@ -169,24 +198,44 @@
ERROR: Unable to create file
ERROR: Unable to create lockfile after # tries
-
The statement means that a lock file is in place for the archive
-you are trying to update.
+
The statement means that MHonArc timed-out trying to obtain a
+lock on the archive. You may be able to avoid time-out problems
+by modifying the LOCKTRIES and
+LOCKDELAY resources.
+
-
Sometimes a lock file exists, but no MHonArc
+
Sometimes a lock file exists, but no MHonArc
process is modifying the archive. This can occur if
-MHonArc is abnormally terminated. If you know that no
-other MHonArc process is editting the archive you are
-try to modify, then manually remove the lock file or use the FORCE resource.
+MHonArc is abnormally terminated. If you know that no
+other MHonArc process is editting the archive you are
+try to modify, then manually remove the lock file or use the
+FORCE resource.
+
+
+
+
+
WARNING
+
If LOCKMETHOD
+is set to flock, then the lock file should never be
+manually deleted. When MHonArc abnormally terminates, then the
+lock will be automatically released when the flock method
+is used. A stale lock can still occur under the flock
+method if for some reason a MHonArc
+process hangs. In this case, just kill the offending process and
+the lock will automatically be released.
+
+
+
+
ERROR: Unable to open file
-
MHonArc was unable to open file for reading. Make
+
MHonArc was unable to open file for reading. Make
sure file exists, and is readable by you.
ERROR: Unable to require perl-library
-
Make sure you properly installed MHonArc. Also
+
Make sure you properly installed MHonArc. Also
make sure Perl is installed properly if the library is a standard
Perl library.
Generally, if execution is aborted and the following error messages
appear, then you will have to manually delete the lock file since
-MHonArc will not have the chance to delete the file.
+MHonArc will not have the chance to delete the file.
Can't locate file in @INC at file line number.
-
A library that MHonArc tried to load was not found
+
A library that MHonArc tried to load was not found
in the Perl include search paths. This error usually implies
-that MHonArc was not installed correctly. Make sure that
-MHonArc was installed via the install.me program
-that is provided in the MHonArc distribution.
+that MHonArc was not installed correctly. Make sure that
+MHonArc was installed via the install.me program
+that is provided in the MHonArc distribution.
file did not return a true value at file line number.
-
If you are using your own MIME filters with MHonArc, make
-sure the library files return 1.
+
If you are using your own MIME filters with MHonArc, make
+sure the library files return a true value, like 1.
MIME-conformance is defined in section 2 of
+
+RFC 2049: (MIME) Part Five: Conformance Criteria and Examples.
+Following is the text extracted from section 2 of RFC 2049 with
+annotations added on how MHonArc conforms to each criteria listed.
+It should be noted that the criteria listed in RFC 2049 is geared
+towards interactive MUAs; therefore, some criteria may not be
+applicable to MHonArc.
+
+Always generate a "MIME-Version: 1.0" header field in
+ any message it creates.
+
+
+
+
+
Not applicable.
+
+
+
+
+
+
+
+Recognize the Content-Transfer-Encoding header field
+ and decode all received data encoded by either quoted-printable or base64 implementations. The identity
+ transformations 7bit, 8bit, and binary must also be
+ recognized.
+
+
+
+
+
Base64, quoted-printable, 7bit, 8bit, and binary are supported.
+Also, uuencode is supported: uuencode, x-uuencode, and
+x-uue.
+
+
+
+
+
+
+ Any non-7bit data that is sent without encoding must be
+ properly labelled with a content-transfer-encoding of
+ 8bit or binary, as appropriate. If the underlying
+ transport does not support 8bit or binary (as SMTP
+ [RFC-821] does not), the sender is required to both
+ encode and label data using an appropriate Content-Transfer-Encoding such as quoted-printable or base64.
+
+
+
+
+
Not applicable.
+
+
+
+
+
+
+
+Must treat any unrecognized Content-Transfer-Encoding
+ as if it had a Content-Type of "application/octet-stream", regardless of whether or not the actual
+ Content-Type is recognized.
+
+
+
+
+
Currently, MHonArc will still call the registered
+content-type filter for the specified
+Content-Type, but the $isdecoded will be set to a false
+value. With the default set of filters, the $isdecoded
+flag is ignored. Therefore, behavior could be considered undefined when
+MHonArc process a message with an unrecognized Content-Transfer-Encoding.
+
+
+
+
+
+
+
+Recognize and interpret the Content-Type header field,
+ and avoid showing users raw data with a Content-Type
+ field other than text. Implementations must be able
+ to send at least text/plain messages, with the
+ character set specified with the charset parameter if
+ it is not US-ASCII.
+
+
+
+
+
MHonArc conforms to the first sentence of the paragraph
+The second sentence is not applicable.
+
+
+
+
+
+
+
+Ignore any content type parameters whose names they do
+ not recognize.
+
+
+
+
+
Yes.
+
+
+
+
+
+
+
+Explicitly handle the following media type values, to
+ at least the following extents:
+
+
+ Text:
+
+
+
Recognize and display "text" mail with the
+ character set "US-ASCII."
+
+
+
+
+
Yes.
+
+
+
+
+
+
Recognize other character sets at least to the
+ extent of being able to inform the user about what
+ character set the message uses.
+
+
+
+
+
Not really applicable. Warnings are generated during processing
+if a character set is encountered that is not recognized.
+
+
+
+
+
+
Recognize the "ISO-8859-*" character sets to the
+ extent of being able to display those characters that
+ are common to ISO-8859-* and US-ASCII, namely all
+ characters represented by octet values 1-127.
+
+
+
+
+
Yes.
+
+
+
+
+
+
For unrecognized subtypes in a known character
+ set, show or offer to show the user the "raw" version
+ of the data after conversion of the content from
+ canonical form to local form.
+
+
+
+
+
MHonArc will treat the data as text/plain and convert.
+
+
+
+
+
+
Treat material in an unknown character set as if
+ it were "application/octet-stream".
+
+
+
+
+
No. A warning is generated for unknown character sets. The
+data will be shown in raw form, with HTML special characters converted
+to entity references. This behavior is the default because some MUAs
+are known to give incorrect charset parameters.
+
+
+
+
+
+
+
+ Image, audio, and video:
+
+
+
At a minumum provide facilities to treat any
+ unrecognized subtypes as if they were
+ "application/octet-stream".
+
+
+
+
+
All image, audio, and video types are saved to an external file
+with a link to the file created in the HTML. For applicable image types, they
+are inlined unless the image has an attachment content-disposition.
+
+
+
+
+
+
+
+ Application:
+
+
+
Offer the ability to remove either of the quoted-printable or base64 encodings defined in this
+ document if they were used and put the resulting
+ information in a user file.
+
+
+
+
+
Most application types are decoded and saved to an external file
+with a link to the file created in the HTML. Some application types
+can be converted directly to HTML.
+
+
+
+
+
+
+ Multipart:
+
+
+
Recognize the mixed subtype. Display all relevant
+ information on the message level and the body part
+ header level and then display or offer to display
+ each of the body parts individually.
+
+
+
+
+
Yes. Each part is automatically processed according to its
+media-type.
+
+
+
+
+
+
Recognize the "alternative" subtype, and avoid
+ showing the user redundant parts of
+ multipart/alternative mail.
+
+
+
+
+
Yes.
+
+
+
+
+
+
Recognize the "multipart/digest" subtype,
+ specifically using "message/rfc822" rather than
+ "text/plain" as the default media type for body parts
+ inside "multipart/digest" entities.
+
+
+
+
+
Yes.
+
+
+
+
+
+
Treat any unrecognized subtypes as if they were
+ "mixed".
+
+
+
+
+
Yes.
+
+
+
+
+
+
+
+ Message:
+
+
+
Recognize and display at least the RFC822 message
+ encapsulation (message/rfc822) in such a way as to
+ preserve any recursive structure, that is, displaying
+ or offering to display the encapsulated data in
+ accordance with its media type.
+
+
+
+
+
Yes.
+
+
+
+
+
+
Treat any unrecognized subtypes as if they were
+ "application/octet-stream".
+
+
+
+
+
Yes.
+
+
+
+
+
+
+
Upon encountering any unrecognized Content-Type field,
+ an implementation must treat it as if it had a media
+ type of "application/octet-stream" with no parameter
+ sub-arguments. How such data are handled is up to an
+ implementation, but likely options for handling such
+ unrecognized data include offering the user to write it
+ into a file (decoded from its mail transport format) or
+ offering the user to name a program to which the
+ decoded data should be passed as input.
+
+
+
+
+
Yes. The data is passed to the
+m2h_external::filter
+to be saved to an external file.
+
+
+
+
+
+
Conformant user agents are required, if they provide
+ non-standard support for non-MIME messages employing
+ character sets other than US-ASCII, to do so on
+ received messages only. Conforming user agents must not
+ send non-MIME messages containing anything other than
+ US-ASCII text.
+
+
In particular, the use of non-US-ASCII text in mail
+ messages without a MIME-Version field is strongly
+ discouraged as it impedes interoperability when sending
+ messages between regions with different localization
+ conventions. Conforming user agents MUST include proper
+ MIME labelling when sending anything other than plain
+ text in the US-ASCII character set.
+
+
+
+
+
The
+m2h_text_plain::filter
+supports an option to specify what character set to use if no character
+set is specified. By default, ISO-8859-1 is assumed.
+
+
+
+
+
+
In addition, non-MIME user agents should be upgraded if
+ at all possible to include appropriate MIME header
+ information in the messages they send even if nothing
+ else in MIME is supported. This upgrade will have
+ little, if any, effect on non-MIME recipients and will
+ aid MIME in correctly displaying such messages. It
+ also provides a smooth transition path to eventual
+ adoption of other MIME capabilities.
+
+
+
+
+
Not applicable.
+
+
+
+
+
+
Conforming user agents must ensure that any string of
+ non-white-space printable US-ASCII characters within a
+ "*text" or "*ctext" that begins with "=?" and ends with
+ "?=" be a valid encoded-word. ("begins" means: At the
+ start of the field-body or immediately following
+ linear-white-space; "ends" means: At the end of the
+ field-body or immediately preceding linear-white-space.) In addition, any "word" within a "phrase" that
+ begins with "=?" and ends with "?=" must be a valid
+ encoded-word.
+
+
+
+
+
Yes.
+
+
+
+
+
+
Conforming user agents must be able to distinguish
+ encoded-words from "text", "ctext", or "word"s,
+ according to the rules in section 4, anytime they
+ appear in appropriate places in message headers. It
+ must support both the "B" and "Q" encodings for any
+ character set which it supports. The program must be
+ able to display the unencoded text if the character set
+ is "US-ASCII". For the ISO-8859-* character sets, the
+ mail reading program must at least be able to display
+ the characters which are also in the US-ASCII set.
+
+
+
+
+
MHonArc supports non-ASCII encoding of text in message headers,
+including the "B" and "Q" encodings. By default, US-ASCII,
+ISO-8859-[1-10], and ISO-2022-JP are supported. For encoded
+words with an unrecognized character set, the word is left in
+encoded form. Additional character set support can be added via the
+CHARSETCONVERTERS resource.
+
The following lists other MIME-related features supported
+by MHonArc:
+
+
+
+
Support for uuencoding as a Content-Transfer-Encoding.
+
+
+
+
Support for many media-types (including the ability to extend
+that support). For a complete list, along with more
+information, see the
+MIMEFILTERS resource.
+Note, many media-types cannot be directly converted into HTML. For
+these types, they are saved to a separate file with a link to the
+file inserted in the converted HTML message data.
+
+
+
+
Support for multipart/related by allowing
+filters to access other
+message parts via content-ids.
+
+
+
+
Support for cid: URLs in text/html
+data. The provides support for things like MHTML:
+MIME E-mail Encapsulation of Aggregate Documents,
+RFC 2110.
+
+
+
+
Support for
+RFC 2369,
+The Use of URLs as Meta-Syntax for Core Mail List Commands
+and their Transport through Message Header Fields. The
+URLs in list header fields will be converted into hypertext links.
+
This appendix describes the adiitional utility programs that
+
This appendix describes the additional utility programs that
are included in the MHonArc distribution. The utility programs
are installed with mhonarc during the installation process.
If the archive used different resource settings from the defaults
for controling filenames, then you must specify those settings when
invoking mha-dbrecover. For example, if you are using
-"shtml" for HTMLEXT, then you should invoke mha-dbrecover
-like as follows:
+"shtml" for HTMLEXT,
+then you should invoke mha-dbrecover like the following:
mha-decode is a utility program unrelated to MHonArc archives.
+mha-decode provides basic MIME decoding capabilites for
+messages.
+
+
If given mail folders as input, all messages within in the mail
+folders will be decoded. All message parts are written to files. If a
+filename is specified for a message part, that filename will be used
+when writing the part to a file. If no filename is specified in the
+message, a unique name will be used based upon the content-type of
+the message part.
+
+
A single message can be decoded by using the -single option.
+
+
+Only MHonArc options that affect parsing of mail folders are applicable
+for mha-decode. The following options are applicable:
+-conlen,
+-mhpattern,
+-msgsep,
+-noconlen,
+-outdir,
+-perlinc,
+-rcfile,
+-single,
+-umask.
+
+
Example usage:
+
+
+ shell> mha-decode inbox
+
+
Use -outdir to have all decoded data placed into a
+separate directory:
+
The following section describes how to perform some common tasks with
+MHonArc archives beyond those mentioned in
+Quick Start. To get a complete picture
+of what you can do with MHonArc, see the section
+on Resources.
+
If you read the Quick Start
+section and ran MHonArc on some of your mail,
+you have may have noticed that the titles of the main (date)
+and thread index pages are not very descriptive: "Mail Index"
+and "Mail Thread Index". It would be much nicer if the the
+titles reflect what type of mail is in the archive. For example,
+if the archive contains messages from a mailing list, the name
+of the list should probably be in the title.
+
+
MHonArc allows you to change the titles via the
+-title and
+-ttitle options.
+The -title option sets
+main index title, and the
+-ttitle option sets
+the thread index title. Example:
+
+
+ shell> mhonarc -title "The Widget List Archive" \
+ -ttitle "The Widget List Thread Archive" ...
+
By default, messages get listed in chronological order on
+the main/non-thread and thread index pages.
+
+
+
+
NOTE
+
The chronological order in the thread index is based on
+the root messages of each thread.
+
+
+
+
+
For many, the default listing order is
+not what is desired. A common desire is to have
+messages in the main index listed in reverse chronological order;
+ie. the most recent messages are listed first while the oldest
+are listed last. Or, one may want to list messages by author
+since the target audience is more interested in looking up messages
+by certain authors than by date.
+
+
Following is the list options available for changing the
+listing order on index pages:
+
MHonArc supports the ability to automatically remove archive messages
+that are older than a specified time period, are older than
+a specified date/time, or the number of messages have reached the maximum
+number specified.
+
+
+For example, if you want an archive to only
+contain messages that are less than a month, you can do something
+like the following:
+
+
Here, we used the -expireage
+option
+to tell MHonArc to remove messages older than 2635200 seconds (30.5 days) when
+adding new messages.
+I know, having to use seconds to specify the expiration age seems cumbersome.
+A table is provided in the EXPIREAGE
+reference page listing common time periods to their equivalence in seconds.
+
+
+
A less used option that will cause automatic deletion is the
+-expiredate option.
+This allows
+you to specify an exact date/time where any messages older than the
+given date/time, will be automatically removed. For example:
+
In this example, before MHonArc adds any new messages, it will delete
+any messages with a date earlier than January 1, 1999. See the
+EXPIREDATE reference page for
+more information and for the correct expiration date syntax.
+
+
+
An archive can also have a maximum number of messages limit.
+When the maximum number is reached, the oldest messages are automatically
+removed. The following is an example of setting the maximum size
+of an archive:
+
Sometimes it becomes necessary to remove specific messages from archive.
+For example, their may be some spam messages and you do not want them
+cluttering your archive (and providing free advertising). Or, there
+may be archived messages that you believe are not appropriate for
+the archive's intended audience.
+
+
To remove specific messages, use the
+-rmm option. For example:
+
You are now asking, "How do I know what a message's number is?". One
+way is to look at the number in the message's filename. I.e. Each
+converted message is writting to a filename containing the number of
+message. For example, msg00024.html,
+msg00028.html, msg00039.html, and msg00048.html
+denote messages 24, 28, 39, and 48.
+
+
Checking filenames can be awkward, so one alternative is to use
+the -scan option. For example:
+
+
+ shell> mhonarc -scan-outdir /home/ehood/html/archive
+ Reading database ...
+ 117 messages in /home/ehood/html/archive:
+
+ Msg # YYYY/MM/DD From Subject
+ ----- ---------- --------------- -------------------------------------------
+ 62 1996/07/30 Kwin Kramer Reading STDIN not from keyboard -- or, Syst
+ 23 1996/07/31 Christopher M. Re: Setting @INC to include my own modules
+ 9 1996/08/01 Dan Kirkwood object as hash key loses methods
+ 2 1996/08/01 James F'jord Ly Re: We're HIRING hot hackers!
+ 1 1996/08/01 Christopher Cha Curious Multi-Dimensional array behavior
+ 14 1996/08/01 I R A Aggie Re: Patch for arithmetic bug in 5.003 ?
+ 3 1996/08/01 Bernard Bellon Re: How do you grab a URL in perl?
+ 38 1996/08/01 Mohammed Dewan Help needed badly win3.1 and perl.
+ 59 1996/08/01 Mohammed Dewan Using file in perl.
+ 4 1996/08/01 Dan Gildor Re: Threaded Discusion groups embeded in We
+ 5 1996/08/01 kendall shaw addicted to emacs lisp
+ 6 1996/08/01 Ye He Q: Sybase extension to Perl
+ 83 1996/08/01 I R A Aggie Re: Browser/Page matching CGI script
+ 7 1996/08/01 Chris Schleiche Re: Simple program looks good, but gives er
+ 13 1996/08/01 Steve McCullagh Perl 5.002 and $| errors
+ ...
+
+
+
With -scan, you can get a listing
+of an archive to your terminal. The listing can be used to determine
+the message number for a message if you know the message's subject and
+author.
+
+
+
The -rmm also supports
+the ability to specify message number ranges and message-ids. See
+the RMM reference page for
+more information and examples.
+
asked question on MHonArc. MHonArc is
a Perl program
for converting e-mail messages as specified in RFC 822 and MIME to MIME to HTML.
MHonArc has the ability to maintain an archive of converted
messages, or it can be used as a basic e-mail->HTML converter.
@@ -120,8 +120,8 @@
to call MHonArc
to archive messages. Procmail provides the ability to preprocess
mail as it arrives to do selective processing and automated tasks
with your mail.
@@ -223,12 +237,35 @@
Replace text that is rendered like this with
what is appropriate for your configuration.
+
In order to run MHonArc with Majordomo's wrapper, the program has to
+be in the same directory where the Majordomo programs are located.
+An easy way to insure this is to create a symbolic link to in Majordomo's
+program directory to where MHonArc is installed. For example:
+
Make sure /usr/bin/mhonarc is readable and executable
+by the majordomo user. Something like the following can be done
+to insure this:
+
+
+ shell> chmod 755/usr/bin/mhonarc
+
+
If you redirect stderr to a logfile, the logfile must
+be owned by the majordomo user and be writable by the majordomo user.
+The directory for that logfile must exist.
+
+
The MHonArc-archive directory must be owned by the majordomo user
+and must have the minimum access permission 755. Group ownership does not
+matter.
+
No. However, you can use a pre-processor like Procmail
+
Version 2.4, or later, does via the CHECKNOARCHIVE resource.
+
+
+
If using an earlier version, or if you are already doing some preprocessing,
+you can use a pre-processor like Procmail
to do the filtering. Here is a message sent to the
MHonArc mailing list:
In MHonArc v2.4 and later, and if you have
+the Digest::MD5 module installed, MHonArc will compute
+the MD5 digest of message headers without message-ids. This
+allows MHonArc to skip the message in subsequent add operations.
+
+
+
+
+
A related problem is messages showing up again in the archive
after you deleted them with RMM. MHonArc does not keep track of
delete message-ids. Therefore, if want to make sure that
@@ -555,7 +608,7 @@
For simplicity, let "MAILDIR" represent the pathname
+to your qmail mail directory.
+
+
To have mhonarc process MAILDIR,
+you pass "MAILDIR/cur" and/or
+"MAILDIR/new" as the mail folder arguments.
+Which subdirectory you choose to use depends on your needs.
+
+
Also, you will need to define the MHPATTERN resource to process
+all non-dotfiles. Example:
+
If all you will ever do is process qmail maildir folders, it may be best
+to set the M2H_MHPATTERN environment variable so you do not have
+to respecify each time you invoke mhonarc. Examples:
+
Yes. Each Netscape Messenger folder has a corresponding mailbox file
+that stores the raw mail messages for the folder. The location
+of the mailbox file will be in your mail directory. Under Unix, this
+is normally $HOME/nsmail. For Windows, this is
+typically
+C:\Program Files\Netscape\Users\<username>\Mail.
+
+
+
For each Netscape folder, there are two files:
+<folder-name> and
+<folder-name>.summary (or
+<folder-name>.snm under Windows).
+The .summary can be ignored with respect to MHonArc.
+The other file contains the raw mail messages and can be passed
+directly to MHonArc for processing. For example, to process all the
+mail in your Inbox, do something like the following:
+
+
+ shell> mhonarc $HOME/nsmail/Inbox
+
+
+
Note, you may need to compress/compact folders in Netscape before
+running MHonArc. If not, messages you have deleted from a folder may
+show up in the archive create by MHonArc.
+
A potential source for help is
<URL:http://mango.human.cornell.edu/kens/MoreFAQ.html#Convert>. The
+><http://mango.human.cornell.edu/kens/MoreFAQ.html#Convert>. The
URL is part of the Eudora FAQ. However, Eudora does uses UUCP-style
mailbox format to store its messagse. Hence, the information
provided from the URL can be applicable to MHonArc.
@@ -439,13 +536,13 @@