message.setContent("this is a string, it cost £20 to write", "text/plain");
It may emit QP content like so:
------=_Part_0_15040737.1106653904705 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable this is a string, it cost =A320 to write
which is broken, argh. The "UTF-8" in the charset is just taken from the system property mail.mime.charset, or file.encoding, but the content has been encoded as Latin-1. In order to fix, I had to write:
message.setContent(new String(bodyString.getBytes("UTF-8"), "ISO-8859-1"), "text/plain");
which is just ridiculous. Between this and the pre-Collections API and other nastiness, I'm seriously considering the possibility of writing my own mail-encoding routines, although not really happy about it. Last time I tried to use GNUmail, it had other bugs, which was also frustrating.