Annoying older Mailman bug with certain MIME types.
Multipurpose Internet Mail Extensions (MIME) is an Internet standard that extends the format of e-mail to support various extended formats. However with older versions of Mailman there is a serious bug which affects the archives.
MIME allows the following:
- Text in character sets other than ASCII
- Non-text attachments
- Message bodies with multiple parts
- Header information in non-ASCII character sets
In emails that include MIME types included multipart/related (message parts should not be considered individually but rather as parts of an aggregate whole; see RFC 2387) and multipart/alternative(each part is an "alternative" version of similar content, each in a different format denoted by its "Content-Type" header; see RFC 2046) a problem can arises with older versions of Mailman. e.g.,
isis bin # ./version
Using Mailman version: 2.1.5
*sigh* Yes, we will upgrade (or rather decommission) that box soon.
The messages take the form in the following:
[MIME Multipart/Related (1) [Multipart/Alternative [text/plain (base64 encoded) (2)] [text/html (base64 encoded) (2)]] [image/png (1)] [image/jpg (1)] [SomeOtherType (1)] ]
Now with (1) there was a problem that archives were not being unencoded properly. This was noted as a bug some time ago and a patch was developed (technically for character sets but it works in this case as well).
The first bug was that Mailman was not decoding multpart-related material. A patch was applied to resolve this issue, which works.
The second bug however occurs when there is a multipart/alternative within a multipart/related email. This is commonly caused by text/plain and text/html which is encoded in base-64, such as by common email clients, like Microsoft Outlook.
There is no known workaround for this problem. Save yourself the time and headache and establish a plan to upgrade your old version of Mailman instead. Whilst you are waiting for the upgrade path you can decode the base64 encoded text with a handy tool developed by opinionatedgeek.