CI 묻고 답하기

제목 CI email 한글 인코딩 관련 질문 드립니다.
카테고리 CI 2, 3
글쓴이 manda4 작성시각 2017/07/17 10:31:04
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 14244   RSS

안녕하세요.

현재 CI의 email 라이브러리를 활용하여 이메일을 전송하고 있는데 한글 인코딩 관련 에러가 발생해 질문 드립니다.

 

$config['mailtype'] = 'text';

위와 같이 메일타입을 텍스트 형태로 설정해놓고 한글, 영문 테스트 한 결과 모두 정상적으로 메일을 전송했습니다.

 

$config['mailtype'] = 'html';

하지만 메일타입을 html으로 설정하면 바디의 한글이나 영문 모두 깨져서 문자가 깨져서 전송되네요.

(메일의 제목은 정상적으로 출력됩니다. 바디의 문자는 영문 한글 가리지 않고 모두 깨져서 표현됩니다.)

실제로 html 템플릿이 아니라 단순 텍스트를 전송할 경우에도 동일합니다.

혹시나 html 파일을 저장할 때의 문제일까 싶어 html을 확인해봤지만 html은 utf-8 형식으로 올바르게 저장되어 있었습니다.

(html 내부의 헤더에서도 charset을 utf-8로 설정해놓았습니다.)

 

혹시 메일 인코딩 문제가 발생하셨던 분들은 어떤 식으로 해결하셨나요?

메일 서버 설정의 문제인지, html 인코딩 방식의 문제인지 감이 오지 않아 여쭤봅니다.

 

밑에는 메일 라이브러리 config 설정에 대한 코드입니다.

        
        $title = "테스트 한글";
	    $body = "테스트 한글";

    	$config = array();
        
        $config['useragent'] = "CodeIgniter";
        $config['protocol'] = "smtp";
        $config['smtp_host'] = "smtp.server.domain";
        $config['smtp_port'] = "25";
        $config['mailtype'] = 'html';
        $config['charset'] = 'utf-8';
        $config['newline'] = "\r\n";
        $config['wordwrap'] = TRUE;

        $this->CI->email->initialize($config);

        $this->CI->email->from('admin@corp.com', 'Admin');
        $this->CI->email->to('admin@corp.com');
        $this->CI->email->subject($title);
        $this->CI->email->message($body);

        $this->CI->email->send();

 

 다음글 두 개의 CI 사용하는 법? (7)
 이전글 다중파일업로드 질문입니다. (5)

댓글

kaido / 2017/07/17 10:36:24 / 추천 0

메일 서버에 따라서 다릅니다.

 

네이버, 네이트, 다음, 구글, 아마존 등등 전부 테스트 해보았으며, html 타입과 한글 이메일 전부 정상 처리 되었습니다.