반응형
UTF-8 이메일을 보내는 방법은 무엇입니까?
이메일을 보낼 때 영어 이외의 문자가 이메일에 표시되지 않습니다. 아래와 같이 표시됩니다.
ä½ ™ 生ä»ä»
실제로 이것이 원인을 알 수 있습니까? 스크립트에 Content-type과 charset을 추가하려고했지만 여전히 동일하게 표시됩니다.
나는 사용했다 Mail::Factory("mail");
"Content-Type : text / html; charset = UTF-8"헤더를 메시지 본문에 추가 할 수 있습니다.
$headers = "Content-Type: text/html; charset=UTF-8";
네이티브 mail()
함수 를 사용하는 경우 $ headers 배열이 4 번째 매개 변수가됩니다.mail($to, $subject, $message, $headers)
PEAR Mail :: factory ()를 사용하는 경우 코드는 다음과 같습니다.
$smtp = Mail::factory('smtp', $params);
$mail = $smtp->send($to, $headers, $body);
모든 메일 시스템 (예 : http://10minutemail.com )이 UTF-8 메일을 읽을 수있는 것은 아니기 때문에 다소 지정된 문자 집합 (ISO-8859-2 )을 사용하고 있습니다. 필요한 경우 :
function utf8_to_latin2($str)
{
return iconv ( 'utf-8', 'ISO-8859-2' , $str );
}
function my_mail($to,$s,$text,$form, $reply)
{
mail($to,utf8_to_latin2($s),utf8_to_latin2($text),
"From: $form\r\n".
"Reply-To: $reply\r\n".
"X-Mailer: PHP/" . phpversion());
}
애플 장치가 이전 버전을 잘 읽을 수 없었기 때문에 다른 메일러 기능을 만들었습니다.
function utf8mail($to,$s,$body,$from_name="x",$from_a = "info@x.com", $reply="info@x.com")
{
$s= "=?utf-8?b?".base64_encode($s)."?=";
$headers = "MIME-Version: 1.0\r\n";
$headers.= "From: =?utf-8?b?".base64_encode($from_name)."?= <".$from_a.">\r\n";
$headers.= "Content-Type: text/plain;charset=utf-8\r\n";
$headers.= "Reply-To: $reply\r\n";
$headers.= "X-Mailer: PHP/" . phpversion();
mail($to, $s, $body, $headers);
}
참고 URL : https://stackoverflow.com/questions/7266935/how-to-send-utf-8-email
반응형
'program tip' 카테고리의 다른 글
NSCoding을 사용하여 사용자 지정 Swift 클래스를 UserDefaults에 저장 (0) | 2020.10.24 |
---|---|
LINQ Group By Multiple 필드-구문 도움말 (0) | 2020.10.24 |
Dapper.NET에서 CommandTimeout 조정? (0) | 2020.10.24 |
목록이 아닌 F #에서 시퀀스를 사용하는 경우 (0) | 2020.10.24 |
double equals vs is in python (0) | 2020.10.24 |