読者です 読者をやめる 読者になる 読者になる

この日記は私的なものであり、所属会社の見解ではありません。 GitHub: takahashikzn

JavaMailでマルチバイト添付ファイル名

Java

久しぶりにJavaMailをゴニョゴニョやってますが、
近頃は添付ファイルのファイル名がマルチバイトでも苦労しないで済むんですねぇ。

単に、

static {
    System.setProperty("mail.mime.encodefilename", "true");
    System.setProperty("mail.mime.charset", "UTF-8");
}

なんてやっておけば、
あとはフツーにMimeBodyPart#setFileName(String)でマルチバイト文字列を渡しても

------=_Part_0_29494755.1328778483115
Content-Type: application/pdf; 
	name="=?UTF-8?B?77yQ77yR77yQ77yS77yT77yU77yV77yW77yX77yY77yZ77yP77yh77yi?=
 =?UTF-8?B?77yj77yk77yl77ym77yn77yo77yp77yq77yP44GC44GE44GG44GI44GK?=
 =?UTF-8?B?44GL44GN44GP44GR44GT77yP44Ki44Kk44Km44Ko44Kq44Kr44Kt44Kv?=
 =?UTF-8?B?44Kx44Kz77yP44G744GS44G744GS772e4pGg44G744GSLnBkZg==?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment; 
	filename="=?UTF-8?B?77yQ77yR77yQ77yS77yT77yU77yV77yW77yX77yY77yZ77yP77yh77yi?=
 =?UTF-8?B?77yj77yk77yl77ym77yn77yo77yp77yq77yP44GC44GE44GG44GI44GK?=
 =?UTF-8?B?44GL44GN44GP44GR44GT77yP44Ki44Kk44Km44Ko44Kq44Kr44Kt44Kv?=
 =?UTF-8?B?44Kx44Kz77yP44G744GS44G744GS772e4pGg44G744GSLnBkZg==?="

nKDyZvZXwjE2vImot3SYM2OAeHp+IzPo7EWbTIy5hNe+iRJeMyYjD59rjllqurB+XuMkEy++Heb+
XQ0jpppAMKfjY/MUPiB4Ywg7FScH++/sDMsZLQdKyyOKWoslVwlM3RiLh9OhcZ8ncWQdNHWS0D3H
CNIReEgXu4kcBYHULBrXY21yixYthqVXFDFa9iMdsjflIZsXZkR5jDOO80NS/INZt8a8HH7KKw8h
8GZAGK9ikSXJK3ob/eZofJP7VgY3wUO6mst4NPsbq4BTqcleQ5mXlWpIUiuD3CKnhNyD6Z7lS6p8
f0trHmltcbh51etrU/DtIx2R0lgLwucQHlqyDjl1h6+FusrfIIXR5a6QO0nFRkKc9xasJnd4e08M
53XGeGc7be4oJindHEBEJT5sgdU9IcTI8ynL9xg8vDQq6LBVCbax
------=_Part_0_29494755.1328778483115--

のように、フォールディングも含めてヨロシクやってくれるようです。