웹메일 roundcube 0.5 버전에서 한글 메일이 깨질때.
알아둘일
2011. 1. 24. 23:05
경고 : 이 방법은 정확한 해결책이 아닐 수 있다. 꼭 필요한 경우에만 적용하자.
roundcube 를 쓰면서 좀 불편한 점이 한글메일이 간혹 깨지는 경우였다.
깨지는 경우는 roundcube 가 이상있는 것이 아니라, 보내는 쪽에서 메일의 헤더에 charset 을 지정하지 않은 경우이다. 대부분 메일 규칙을 지키지 않는 아주 불량한 메일이라고 봐도 된다.
그래도 간혹 봐야 하는 경우가 생기니. 정부(관공서)메일에서도 심심찮게 발견된다.
간단하게나마 몇 부분(파일2개)을 수정해서 한글을 볼 수 있게 해보자.
1) config/main.inc.php ( 라인 수는 다를 수 있다. )
497 //$rcmail_config['default_charset'] = 'ISO-8859-1';기본 ISO-8859-1 으로 지정된 것을 EUC-KR 로 지정했다.(위처럼 주석처리하거나 바꿔준다)
498 $rcmail_config['default_charset'] = 'EUC-KR';
2) program/include/rcube_imap.php
2369 라인 정도 ( _set_part_filename 함수 내 )
if( $part->charset == 'us-ascii' ) $part->charset = 'euc-kr';
// decode filename
if (!empty($filename_mime)) {
$part->filename = rcube_imap::decode_mime_string($filename_mime,
$part->charset ? $part->charset : ($this->struct_charset ? $this->struct_charset :
rc_detect_encoding($filename_mime, $this->default_charset)));
}
else if (!empty($filename_encoded)) {
// decode filename according to RFC 2231, Section 4
if (preg_match("/^([^']*)'[^']*'(.*)$/", $filename_encoded, $fmatches)) {
$filename_charset = $fmatches[1];
$filename_encoded = $fmatches[2];
}
$part->filename = rcube_charset_convert(urldecode($filename_encoded), $filename_charset);
}
2449 라인 정도.( &get_message_part 함수내 )
if ($body && $o_part->charset
&& preg_match('/^(text|message)$/', $o_part->ctype_primary)
) {
if( $o_part->charset == 'us-ascii' ) $o_part->charset = 'euc-kr';
$body = rcube_charset_convert($body, $o_part->charset);
}
imap 으로부터 charset이 지정되지 않으면 us-ascii 로 지정되는데, 이런 것들을 euc-kr 메일로 가정하는 것이다. roundcube 는 내부적으로 UTF-8 로 변환한다.
더 하부적으로 내려가서 바꿔줄수도 있을 듯 한데. 일단 여기까지.
반응형
'알아둘일' 카테고리의 다른 글
윈도우에서 공유기내의 FTP 서버운영, filezilla server (0) | 2011.01.29 |
---|---|
우분투에서 구글톡(google talk) 영상채팅 작동이 안 될때.(Firefox 플러그인) (0) | 2011.01.25 |
mysql , 테이블 구조를 볼때. (0) | 2011.01.18 |
웹메일 roundcube 0.5 버전으로 업그레이드 (0) | 2011.01.18 |
팩스서버 hylafax 사용. (0) | 2010.12.31 |
WRITTEN BY
- 1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.
,