|
これはJavaMailの問題かと思われますが、通知メールの送信者名に漢字が入ると受信したメーラーで文字化けします。通知メールのFromはブログ設定で設定したEMailアドレスで、名前はブログ名となっているためブログ名が漢字だとこの現象が出ます。
Windowsサーバーではこのエンコードが「Shift_JIS」となっており本来JIS(ISO-2022-JP)とすべきです。しかし、Windowsのメーラーの多くはこれをちゃんとデコードするので問題ありませんでした。
今回Linuxで動作させたところ、エンコードが「ISO-8859-1」となり、メーラーでは「??????」となってしまいます。
|
new InternetAddress(address,personal);
の部分はすべて
new InternetAddress(address,personal,"ISO-2022-JP");
のように指定する必要があります。
※Pebbleの場合、pebble.util.MailUtils$SendMailThreadのRun()に一箇所だけです。
JAVAでのデフォルトのエンコーディングはシステムプロパティ「file.encoding」で決定し、これはシステムのロケールから割り出します。今回のLinuxでは環境変数LANGが「en_US」となっていたためエンコードが「ISO-8859-1」となったのでしょう。ちなみにLANGが「ja_JP.eucJP」ならどうなるのか予測がつきません。
またWindowsではMS932(JDK1.4.2以降)となるので「Shift_JIS」となったと考えられます。
実は細かくは複雑な問題が残っていて、今Pebble使っているJavaMailをバージョンアップする必要も出てきそうです。