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
위대한 일을 성취하는 사람은 위대한 고통을 느끼는 사람이다. 고통의 해결은 고통의 감지에서 시작되고, 위대한 고통은 그것을 해결함으로써 인간의 자부심을 드높일 수 있는 위대한 문제이기 때문이다. 따라서 우리는 역설적으로 이렇게 말할 수 있다. 위대한 고통 때문에 아파하는 사람은 축복을 받았다고…. (김광수의 《둥근 사각형의 꿈》중에서)