PHPMailer.zip

글을 들어가기에 앞서 필자는 naver의 smtp서버를 이용했고,
네이버 smtp 서버가 열려있어야한다.

require_once($_SERVER['DOCUMENT_ROOT'].'/common/lib/PHPMailer/PHPMailerAutoload.php');

$mail = new PHPMailer(); 

$mail->ContentType = "text/html";  

//전송시 한글 깨짐 방지
$mail->Charset = 'UTF-8'; 
$mail->SMTPSecure = 'ssl'; 

$mail->isSMTP(); 
$mail->SMTPDebug = 2; 

$subject = "제목";
$mail_from  = "보내는 사람";
$mail_to  = "받는 사람";


//제목과 보내는 사람 이름 등등은 직접적으로 인코딩 변경
$subject = "=?UTF-8?B?".base64_encode($subject)."?="."\r\n"; 
$mail_from = "=?UTF-8?B?".base64_encode($mail_from )."?="."\r\n"; 
$mail_to = "=?UTF-8?B?".base64_encode($mail_to)."?="."\r\n"; 

$message =  "보내는 내용";
  
$mail->Debugoutput = 'html'; 
  
$mail->Host = 'smtp.naver.com'; 
  
$mail->Port = 465; 
$mail->SMTPAuth = true; 
  
$mail->Username = "Naver Email"; 
  
$mail->Password = "Naver Password"; 
  
$mail->setFrom('보내는 사람 이메일', $mail_from); 
  
$mail->addReplyTo('보내는 사람 이메일', $mail_from); 
  
$mail->addAddress('받는 사람 이메일', $mail_to); 
  
$mail->Subject = $subject; 
  
$mail->msgHTML($message, dirname(__FILE__)); 
  
$mail->AltBody = 'This is a plain-text message body'; 
  
if (!$mail->send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
    echo "Message sent!"; 
}

//만약 Charset을 변경해도 내용 쪽 한글이 깨질 경우
class.phpmailer.php 파일을 열어서

public $CharSet = 'iso-8859-1';

이 코딩을

public $CharSet = 'UTF-8';

이렇게 변경해주면 해결된다.

+ Recent posts