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
전깃불이 나간 어두운 방안에서 초가 있으면서도 초를 아끼느라 켜지 않는다면 어떻게 될까. 마찬가지로 한두 마디의 상냥한 말이면 상대방의 마음을 밝게 해 주고 유쾌한 분위기를 만들 수 있는데 그러지 않는다면 그것은 마치 초를 아끼기 위해 어둠 속에 있는 것과 같다. (T. 제퍼슨)