UTF-8 이메일 전송 방법

메일을 보낼 때 영어 이외의 문자가 표시되지 않습니다.다음과 같이 표시됩니다.

½™™”ÿÿÿÿÿÿ

실제로 원인이 뭔지 알 수 있을까요?스크립트에 Content-type과 charset을 추가하려고 해도 그대로 표시됩니다.

나는 사용했다Mail::Factory("mail");



질문에 대한 답변



“Content-Type: text/carset; charset=” 헤더를 추가할 수 있습니다.UTF-8″을 클릭합니다.

$headers = "Content-Type: text/html; charset=UTF-8"; 

네이티브를 사용하는 경우mail()함수 $syslog 배열은 네 번째 파라미터가 됩니다.mail($to, $subject, $message, $headers)

PEAR 메일::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: $formrn".
"Reply-To: $replyrn".
"X-Mailer: PHP/" . phpversion());
} 

이전 버전에서는 Apple 단말기가 잘 읽을 수 없었기 때문에 메일러 기능을 추가했습니다.

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.0rn";
$headers.= "From: =?utf-8?b?".base64_encode($from_name)."?= <".$from_a.">rn";
$headers.= "Content-Type: text/plain;charset=utf-8rn";
$headers.= "Reply-To: $replyrn";
$headers.= "X-Mailer: PHP/" . phpversion();
mail($to, $s, $body, $headers); } 



아니라면HTML,그리고나서UTF-8는 권장되지 않습니다. koi8-r그리고.windows-1251문제없이만.html 메일을 사용하세요.

$headers['Content-Type']='text/html; charset=UTF-8'; $body='<html><head><meta charset="UTF-8"><title>ESP Notufy - ESP Сообщения</title></head><body>'.$text.'</body></html>';
$mail_object=& Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password)); $mail_object->send($recipents, $headers, $body); }