DOCOMOの日本語・半角英数字が混じったメール

まいど、
もりぞーです。

DOCOMOの携帯から日本語と半角英数字が混じった場合、
Subjectが面白いことに。

@原文
ドコモの携帯からSubjectに以下を記述
Baaaaあああああ.aaa な@かgjajd ajやねやたlthm..


@PCで受信したメールのソース(DOCOMOからPCへ送った)
Subject: Baaaa=?iso-2022-jp?B?GyRCJCIkIiQiJCIkIhsoQg==?=.aaa
=?iso-2022-jp?B?GyRCJEobKEI=?=@=?iso-2022-jp?B?GyRCJCsbKEI=?=gjajd
aj=?iso-2022-jp?B?GyRCJGQkTSRkJD8bKEI=?=lthm..


JavaMailで普通にgetSubjectを実行すると・・

Baaaa=?iso-2022-jp?B?GyRCJCIkIiQiJCIkIhsoQg==?=.aaa な@=?iso-2022-jp?B?GyRCJCsbKEI=?=gjajd aj=?iso-2022-jp?B?GyRCJGQkTSRkJD8bKEI=?=lthm..


わけがわかりません。
どうやら複数行あった場合、最後の行だけ正しく変換する模様。

至急どうにかするコードを書いてくれってことで、適当に書いてみた。

/**
* docomoSubjectDecoder
* DOCOMOから送信されるメールのSubject文字化けを元に戻す。
* @param String subject
* @return String newSubject
*/
public static String docomoSubjectDecoder(String nativeSubject){

//抽出用マッチングパターン
String ISO_2022_PATTERN = "\\Q=?iso-2022-jp?\\E(.*?)\\Q=?=\\E";

try{
//抽出作業
ArrayList codeList = new ArrayList();
Pattern pattern = Pattern.compile(ISO_2022_PATTERN,Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(nativeSubject);
while(matcher.find()){
codeList.add(matcher.group());
}
//抽出したものを置換
for(int i=0;i nativeSubject = nativeSubject.replaceAll("\\Q"+(String)codeList.get(i)+"\\E",MimeUtility.decodeWord((String)codeList.get(i)));
}

}catch (Exception e) {
//エラー
// TODO: handle exception
}
return nativeSubject;
}


@使い方(噛ませるだけ)
Message[] messages = folder.getMessages();
String subject = messages[i].getSubject();
String subjectAfter = docomoSubjectDecoder(messages[i].getSubject());


即席・・・。
とりあえず変換されてないのを抽出して
変換かけて戻してるだけ。
いいのかしら・・これで・・

ぺんぎん
もりぞー 17:17 | コメント(0) | トラックバック(0) | Java
トラックバック

こちらの記事へのトラックバックは下のURLをコピーして行ってください。

コメント
この記事へのコメントはありません。
名前:
メールアドレス:
URL:
コメント:
最近の記事
世界で悩んでるのか?
09/06 22:03
YahooがGoog…
07/27 19:35
iPhone4来まし…
07/12 01:01
m4vが再生できない…
07/05 16:42
HTTP Live …
06/30 15:46
カメラロールから写真…
06/29 20:50
iPhone4予約し…
06/25 20:01
最近のコメント
なべ さま大…
もりぞー 05/19 09:27
もりぞーさん、ご無沙…
なべ 05/17 19:54
そもそもそんなに大量…
dou 02/24 20:12
これを皮切りに是…
もりぞー 12/17 09:54
産経新聞×iPhon…
河合です 12/16 12:07
いいこといいますね!…
富士山 11/02 19:34
すみません、、おもわ…
河合 08/13 12:36
始めまして、もりぞー…
もりぞー 07/30 12:15
はじめまして。い…
かわい 07/30 12:02
PHPをIIS上で動…
はかまー 06/01 21:08
最近のトラックバック
Yahoo!ボットチェッカー
Googleボットチェッカー
MSNボットチェッカー

ディマージシェア技術ブログ