①や㈱のような機種依存文字もメールとして見られるようにする為には、
UTF-8でメールを送るか、
新しめのJavaであれば、
-Dsun.nio.cs.map=x-windows-iso2022jp/ISO-2022-JP
をvmの引数にして、メールヘッダのcharsetが「ISO-2022-JP」であっても表示することができます。*1
JavaMailをそのまま使用するのであれば、これで問題ないのですが、
S2Maiのように、ozacc-mail libraryを使用している場合、思うような動きになりません。
vmの引数に上記設定を行うことで
「①」や「㈱」のような文字を表示することができるのですが、
「〜」や「£」は、「?」として表示されてしまいます。
これはozacc-mail libraryの中でcharsetが「ISO-2022-JP」の場合、
文字列に「〜」や「£」が含まれると、別のコード値にマッピングしているからです。
対応方法はマッピングしなおさないようにソースコードを変更するしかないと思います。*2
全てのメールクライアントでUTF-8のメールが見られれば、
メールヘッダをUTF-8にすれば良いのですが、現実的に難しいことも多いみたいです。*3
あんまりWeb上に情報が無かったんだけど
ozacc-mail libraryを使っている開発者達は、この辺で悩まないのかなー?
vmを騙すことになるからあまり使われないのかしら。