메일 전송 시 한글 깨짐

메일을 전송할 때 네이버 메일에서는 보내는 사람과 메일 제목이 한글일 경우 깨지지 않았는데, gmail이나 외부메일(회사메일이나 학교메일 등)로 전송하면 한글이 깨져서 보였다.

한글깨짐

제목 인코딩 방법

1
2
3
4
// 원래 코드
msg.setSubject(Subject);
// 바꾼 코드
msg.setSubject(MimeUtility.encodeText(Subject, "UTF-8", "B"));

위 코드 처럼 제목을 작성해 주는 코드에서 encodeText함수를 사용해서 UTF_8로 인코딩해준다.

메일 보내는 사람 인코딩 방법

1
2
3
4
// 원래 코드
msg.setFrom(new InternetAddress(FROM,FROMNAME));
// 바꾼 코드
msg.setFrom(new InternetAddress(FROM, MimeUtility.encodeText(FROMNAME, "UTF-8", "B")));

위 코드 처럼 메일 보내는 사람을 작성해 주는 코드에서도 같은 방식으로 UTF-8로 인코딩해준다.

메세지 전송 성공

전송성공
인코딩을 하고 다시 메일을 전송한다면 이렇게 성공적으로 메일이 보내진 것을 확인할 수 있다!!