Programming/Tips

SMTP 모듈에서 UTF-8 사용시 주의 사항

acidpop 2014. 5. 16. 18:03
반응형

프로젝트 진행중 E-Mail 을 UTF-8로 해놓고 전송하면 제목의 한글이 깨지는 경우가 있다.


E-Mail 원문을 분석해본 결과


EUC-KR 한글을 UTF-8로만 인코딩 하면 깨지고


국내에서는 다음과 같은 규격을 사용하는 모양이다.


"이메일 제목 전송"


위와 같은 문자열을 제목에 사용하려면


위 문자열을 UTF-8 인코딩 문자열로 변경 한 다음


다시 Base64 인코딩으로 변경해주어야 한다.


그 다음 E-Mail Header 부분에



Subject: 이메일 제목 전송


이런식이 아닌


Subject: =?UTF-8?B?[Base64인코딩된 문자열]?=


이런 구조로 해주어야 한다.


즉 =?UTF-8?B? 과 ?=  문자 사이에 Base64 로 인코딩 된 문자열을 입력하면 된다.


위 문자열을 Base64 인코딩 한 후 위 형식대로 넣는다면


Subject: =?UTF-8?B?7J2066mU7J28IOygnOuqqSDsoITshqE=?=


이런 구조가 되는것이다.


header 부에서 한글로 들어 가는 부분은 모두 위와 같은 형식으로 바꿔주면 된다.