2015년 5월 21일 목요일

java mail 첨부파일 이름 긴 경우 문제

첨부파일이 한글일 경우를 감안해서 보통 아래와 같이 쓴다.
bodyPart.setFileName( MimeUtility.encodeText(fileName, "UTF-8", "B"));

그러나 첨부파일 이름이 긴경우 제대로 인식이 안되고 아래와 같이 이름이 적용된다.

=?UTF-8?B?7IKs67iM67CA65+sXyjrqoUp6rCV7KeE7KO866WYKOyghOuCqClf?= =?UTF-8?B?MjAxNTA1MTJf6rGw656Y66qF7IS47IScLnBkZg==?=

해결책은 헤더값을 직접 지정하였습니다.
setFileName 을 안쓰고 직접 헤더 추가.
bodyPart.setDisposition("attachment; filename=\"" + MimeUtility.encodeText(fileName, "UTF-8", "B") + "\"");
bodyPart.setHeader("Content-Type", "application/pdf;name=\"" + MimeUtility.encodeText(fileName, "UTF-8", "B") + "\"");

댓글 없음:

댓글 쓰기