iPhoneがcharset=cp932のメールを送ってくることがある。
Javaはcp932なんて知らないので、getContentするとJavaMailが死ぬ。
public static void convertContentType(Part part) throws MessagingException {
String[] headers = part.getHeader("Content-Type");
String contentType = headers[0].toLowerCase();
if(contentType.contains("cp932")) {
part.removeHeader("Content-Type");
part.setHeader("Content-Type", contentType.replaceAll("cp932", "ms932"));
}
}
これでgetContentする前にContent-Typeを変換する。
ms932ならJavaが理解できるのでgetContentできるようになる。