PHP & Others

mail()함수또는 smtp로 메일 보내실때..

페이지 정보

본문

제목은 반드시 2047 인코딩을 해서 보내시는것이 좋습니다.
그냥 아무 처리없이
Subject: 메일제목
이렇게 보내게 되면 같은 cp949인코딩을 쓰지 않는 메일 클라이언트에서는 메일 제목을 제대로 읽어오지 못하게되죠... 우리나라 대부분(?)웹메일은 기본적으로 euc-kr 인코딩을 사용하는 웹페이지 내에서 보여지므로 별 문제없이 출력되고 그만인데, 다른 인코딩을 사용하는 웹메일이나, 메일 클라이언트에서는 원래 인코딩을 알수없어 깨진 문자를 출력하게 됩니다.

http://www.ietf.org/rfc/rfc2047
rfc2047을 참조해서 정확한 인코딩/디코딩 함수를 만들면 좋겠지만..

그냥 euc-kr에서 메일을 작성할 경우
'안녕하세요'는
'=?euc-kr?b?vsiz58fPvLy/5A==?='
처럼 인코딩해주시면 됩니다.


<?
function encode_2047($subject) {
  return '=?euc-kr?b?'.base64_encode($subject).'?=';
}

mail('comfuture _at_ gmail.com',encode_2047('안녕하세요'),'테스트메일입니다');
?>

간단히 이렇게 만들어두시면 썬더버드같은 메일클라이언트 또는 gmail 에서도 깨지지 않은 메일 제목을 볼 수 있게 됩니다.
별것 아니지만 사소한 신경을 쓰지 않은 거대 포털들을 보면 신뢰도가 떨어지더군요

관련자료

등록된 댓글이 없습니다.
Today's proverb
실력이 떨어지면 남보다 더한 노력으로 이를 보충하면 되는 것이다. 가장 중요한것은 스스로 하고자 하는 의지이다. (거스히딩크)