컴퓨터

barbushin/php-imap으로 웹메일을 구현했는데 한글이 깨집니다.

PHP를 이용하여 웹메일을 구현하려고 barbhshin/php-imap이란 클래스를 사용해봤습니다. 첨부파일까지 따로 저장하고 꽤 간편하게 구현할 수 있었는데, 몇몇 이메일 중에 ks_c_5601-1987로 인코딩된 것은 한글이 깨지는 것이었습니다.

다 잘됐다면 한방에 날로 먹을 수 있었는데, 아쉽네

구글느님에게 방법을 찾아보니, 아래와 같이 하여 해결하였습니다.

PHP-IMAP 2.2.5 을 쓰신다면 (<=PHP 5.3)

Mailbox.php의 convertStringEncoding function 중에 779줄에

if(!$string || $fromEncoding == $toEncoding) {
	return $string;
}

밑에 아래 1줄 추가

$fromEncoding = !isset($fromEncoding) || $fromEncoding == 'ks_c_5601-1987' ? 'CP949' : $fromEncoding;	

PHP-IMAP 3.0.4 나 그 이후 버전을 쓰신다면 (>=PHP5.5)

Mailbox.php의 convertStringEncoding function 중에 746줄에

if(!$string || $fromEncoding == $toEncoding) {
	return $string;
}

밑에 아래 1줄 추가

$fromEncoding = !isset($fromEncoding) || $fromEncoding == 'ks_c_5601-1987' ? 'CP949' : $fromEncoding;	

깨졌던 한글이 쫙하고 제대로 나올 겁니다. 그럼 이만

riverwind

텍스트큐브 플랫폼이군요..
상당히 좋은 플랫폼이었는데 구글에 팔고난후 구글이 폐기해서 아까웠는데 개인사용자가 드물었는데 여기서 보게됩니다..ㅎㅎ 좋은 블로그입니다.