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
지금까지 적을 만들어 본 적이 없는 사람은 결코 친구를 가질 수 없다. (알프레드 테니슨)