SMTP는 텍스트 기반의 프로토콜로서 요구/응답 메시지뿐 아니라 모든 문자가 7bit ASCII로 되어있어야 한다고 규정되어 있다. 이 때문에 문자 표현에 8비트 이상의 코드를 사용하는 언어나 첨부파일과 자주 사용되는 각종 바이너리는 마임(MIME)이라고 불리는 방식으로 7비트로 변환되어 전달된다.

다른글

SMTP는 원래 텍스트 기반 프로토콜이며, 요청 / 응답 메시지뿐 아니라 모든 문자가 7 비트 ASCII 이어야한다는 제한이 있었다. 현재는 확장 기능 8 bit 이상을 요구하는 언어와 첨부 파일에 사용되는 것이 많은 이진 도 그대로 전송하는 것도 가능하지만, 호환성을 고려하면 MIME 하는 방식으로, 7 bit에 맞게 하는 것이 바람직하다.


출처 - http://ko.wikipedia.org/wiki/%EA%B0%84%EC%9D%B4_%EC%9A%B0%ED%8E%B8_%EC%A0%84%EC%86%A1_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C






php mail 함수

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )


출처 - http://php.net/manual/en/function.mail.php



mail 함수에서  $to , $subject , $message 변수에 한글등 아스키문자 이외의 문자가 있으면 인코딩 해줘야 한다.

예를 들면... 

$subject = "=?UTF-8?B?".base64_encode("메일 제목")."?="; 


그리고 가급적이면 메일제목에는 utf-8말고 euc-kr을 사용하시는 것이 좋을 거 같습니다. 

utf-8을 기본으로 사용하고 있다면 제목만이라도 iconv를 통해 euc-kr로 변환하고 base64로 인코딩해주는게 좋을거 같네요... 


$subject = "=?EUC-KR?B?".base64_encode(iconv("UTF-8","EUC-KR","메일 제목"))."?=";



출처 - http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=246037&sca=&sfl=wr_subject%7C%7Cwr_content&stx=mail&sop=and&spt=-82717&page=12








iconv_mime_encode — Composes a MIME header field

reject note Description

string iconv_mime_encode ( string $field_name , string $field_value [, array $preferences = NULL ] )

Composes and returns a string that represents a valid MIME header field, which looks like the following:

Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
In the above example, "Subject" is the field name and the portion that begins with "=?ISO-8859-1?..." is the field value.

reject note Parameters

field_name

The field name.

field_value

The field value.

preferences

You can control the behaviour of iconv_mime_encode() by specifying an associative array that contains configuration items to the optional third parameter preferences. The items supported by iconv_mime_encode() are listed below. Note that item names are treated case-sensitive.

Configuration items supported by iconv_mime_encode()
ItemTypeDescriptionDefault valueExample
schemestringSpecifies the method to encode a field value by. The value of this item may be either "B" or "Q", where "B" stands for base64 encoding scheme and "Q" stands for quoted-printableencoding scheme.BB
input-charsetstringSpecifies the character set in which the first parameter field_name and the second parameter field_value are presented. If not given, iconv_mime_encode() assumes those parameters are presented to it in the iconv.internal_encoding ini setting.iconv.internal_encodingISO-8859-1
output-charsetstringSpecifies the character set to use to compose the MIME header.iconv.internal_encodingUTF-8
line-lengthintegerSpecifies the maximum length of the header lines. The resulting header is "folded" to a set of multiple lines in case the resulting header field would be longer than the value of this parameter, according to » RFC2822 - Internet Message Format. If not given, the length will be limited to 76 characters.76996
line-break-charsstringSpecifies the sequence of characters to append to each line as an end-of-line sign when "folding" is performed on a long header field. If not given, this defaults to "\r\n" (CR LF). Note that this parameter is always treated as an ASCII string regardless of the value of input-charset.\r\n\n

reject note Return Values

Returns an encoded MIME field on success, or FALSE if an error occurs during the encoding.

reject note Examples

Example #1 iconv_mime_encode() example

<?php
$preferences 
= array(
    
"input-charset" => "ISO-8859-1",
    
"output-charset" => "UTF-8",
    
"line-length" => 76,
    
"line-break-chars" => "\n"
);
$preferences["scheme"] = "Q";
// This yields "Subject: =?UTF-8?Q?Pr=C3=BCfung=20Pr=C3=BCfung?="
echo iconv_mime_encode("Subject""Prüfung Prüfung"$preferences);

$preferences["scheme"] = "B";
// This yields "Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?="
echo iconv_mime_encode("Subject""Prüfung Prüfung"$preferences);
?>

reject note See Also



출처 - http://php.net/manual/en/function.iconv-mime-encode.php











'Development > PHP' 카테고리의 다른 글

php - syslog  (0) 2013.05.15
php - PDT 설치  (0) 2013.05.13
php - 점(.) 연산자  (3) 2013.04.06
php - mail  (0) 2013.04.06
copyright 년도 자동표기하기  (0) 2013.03.06
Posted by linuxism
,