I had some problems (correctly, M$ has got problems) recently, when I figured out that Outlook Express, under certain conditions, do not code attachments as Base64, but as Quoted-printable. It seems to be quite common, and lots of mails with attachments were trashed. See my previous bug report about this.
I solved the problem, and got a workable solution by rewriting the Perl MIME::QuotedPrintable function. Then I started to think about what Anomy really does, and have spent not so few hours on this. My conclusion is, that you should leave contents alone, that is, no decoding and recoding (except for HTML-contents, that can be very, very dangerous).
I modified the Anomy code, so only the content headers are rewritten, that is, throwing out attachments with forbidden contents (.exe, .js, .vbs, etc), only defanging the filename for attachments that can contain macros, and that I want the user to regard with suspicion (.doc, .xls, .etc). The only content rewriting I allow is for HTML, leaving only plain text. All other content that is passed through Anomy, is simply copied from input to output in memory.
The result is faster processing, as no content decoding/encoding takes place, and no risk of content trashing, due to buggy decoders/encoders.