2015-01-10 3 views
0

PHP Mail Function을 사용하여 HTML 전자 메일을 보내고 있습니다. 전자 메일의 제목에서 이와 같이 할 수 있습니다. 그 "가 â €" "Accountâ €"와서 어떻게 변수에 그것을 넣어하지 않기 때문에PHP로 전송 된 이메일 제목에 이상한 문자가 표시됩니다.

Just one more step - Confirm Your Account†

나는 그것을 알아낼 수 없습니다. 아래는 코드입니다.

기능은

$html = template_registration($name, $email, $user_code); 
sendmail($html, $email, $name, "Just one more step - Confirm Your Account‏"); 


function sendmail($html, $to, $name, $subject){ 
    require_once(site_path . "/framework/PHPMailer/PHPMailerAutoload.php"); 
    $mail = new PHPMailer; 
    $mail->isSendmail(); 
    $mail->setFrom('[email protected]', 'Example'); 
    $mail->addAddress($to, $name); 
    $mail->Subject = $subject; 
    $mail->msgHTML($html); 
    if ($mail->send()) { 
     return true; 
    } 
} 

나는 심지어 구글에서 검색 할 모르겠어요, 도와주세요 호출되고.

$headers = 'Content-Type: text/html; charset=UTF-8'; 
mail($to, $subject, $message, $headers); 

그렇지 않으면 이메일이 잘못 해석됩니다

답변

2

당신은 헤더를 설정해야합니다.

코드를 기반으로

또는 : †아마 이메일의 나머지에서 그러나 "잘못된"인코딩으로 유래

$mail->CharSet = 'UTF-8'; //before sending it of course 

, 시스템은 그 차이 (아주 쉽게) 만들 수 없습니다

.

+0

굉장합니다. 감사! –

2

보십시오. 이메일 기능을 위해 헤더를 설정해야합니다. 아래 코드 은 보낸 데이터 유형을 알려줍니다.

$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
관련 문제