This fixes the problem in #5, as well as a similar issue with characters like '@' being used in the name part of an address header.
There are some API design decisions in here, like what kind of arguments simpleMail takes. I've chosen an Address, since a String would mean you can't pass a name anymore. I've also created a convenience constructor emptyMail, since Mail has so many fields now. Feel free to change any of these decisions if you want.
Add explicit fields in Mail for from, to, cc and bcc.
These fields have type Address, which is a combination of a name (optional) and an email. This is needed because encoding the email part is not allowed by RFC 2047.
Add emptyMail function to more easily create Mail.
This is convenient now that Mail has more fields.
Encode all special characters from RFC 2822.
Many (but not all) of these went wrong with some mail servers when used as 'name' part of an address header (from, to, cc, bcc).
Bump version number after changes to Mail and simpleMail.
This looks good to me. Can you send an email to the haskell-cafe mentioning these changes and see if anyone is opposed? If not, I'll pull and release.
Sorry for leaving this so long. I've just sent an email to -cafe.