メールヘッダあれこれ

少し前に参加してた案件で、JavaMailを使ったメール送信機能があったんだけど
それが、携帯にも送る仕様だったわけで・・・

問題が、携帯に送った際に何故か文字化け・・・しかもAU、TUKAのみ
が文字化けが起こっていたっていうこと。
解決策として・・・

メールを送信する際って、色々ヘッダ部分、body部分と設定するんだけど、
最初は、

mimeMessage.setHeader("Content-Type", "text/plain");
String messageId = getTimeStamp() + "." + mailAddressFrom;
mimeMessage.setHeader("Message-ID", messageId);
mimeMessage.setHeader("Content-Transfer-Encoding", "7bit");

/* 送信先設定 */
InternetAddress[] tolist = InternetAddress.parse(addressTo,false);
mimeMessage.addRecipients(Message.RecipientType.TO, tolist);

/* 送信元設定 */
mimeMessage.setFrom(
new InternetAddress(addressFrom,
MimeUtility.encodeWord(mailTransferFrom,
ENCODE_ISO, "B"),ENCODE_ISO));

/* メールタイトル設定 */
mimeMessage.setSubject(subject);

/* メール本文設定 */
mimeMessage.setText(detail, ENCODE_ISO);

/* メール送信日時設定 */
mimeMessage.setSentDate(sendDate);

/* メール送信 */
Transport.send(mimeMessage);

上記のようなコードを書いていたわけで、あえて言うなら、題名の文字列に
対して、encodeWordをかけていなかった点かと思う。
っで、とりあえず、


/* メールタイトル設定 */

mimeMessage.setSubject(
MimeUtility.encodeWord(subject, ENCODE_ISO, "B"));

これで、文字化けは直ったんだが、現在参画している、プロジェクトでは、
ContentTypeとかTranfer-Encodingとかの設定が全くしてないにも
関わらず、文字化けしてないようで問い合わせも来てないらしい・・・
どういうこと?
メールサーバーとかも違ったりするのも要因のひとつかもしれないけど、
設定がない場合は、受けとるほうのメールサーバーは設定してくれる?

いまいち、しっくりこない・・・
携帯でも端末ごとで化けたり化けなかったりだしな・・・・

とりあえず、メールヘッダの参考にしたサイトは→ここ

これで、文字化けは直ったんだが、現在参画している、プロジェクトでは、
ContentTypeとかTranfer-Encodingとかの設定が全くしてないにも
関わらず、文字化けしてないようで問い合わせも来てないらしい・・・
どういうこと?
メールサーバーとかも違ったりするのも要因のひとつかもしれないけど、
設定がない場合は、受けとるほうのメールサーバーは設定してくれる?

いまいち、しっくりこない・・・
携帯でも端末ごとで化けたり化けなかったりだしな・・・・

とりあえず、メールヘッダの参考にしたサイトは→ここ