RoundCube Webmail 한글 깨짐 수정

김정균의 이미지

MUA 글을 읽다 보니 RoundCube 를 사용하시는 분들이 종종 있더군요. 저도 얼마전에 0.10statble 을 설치해 보았습니다만.. stable 하지는 않은것 같이 버그가 숭숭 보이네요. 그래도 메일 원문 보기와 헤더 보기만 있으면 괜찮겠다 싶어서 설치를 해 놓고 좀 살펴 보고 있었는데.. 이게 어떤 메일은 한글이 잘 보이고, 어떤 메일은 잘 안보이는 문제가 있더군요. 그래서 살펴 보니, 다른 imapd 는 모르겠는데, wu-imapd 의 경우 roundcube 가 메일 정보를 imapd 에서 얻을 때 charset 이 메일에 지정이 되어 있지 않으면 US-ASCII 로 주는 문제가 있더군요. 그래서 US-ASCII 에서 UTF-8로 변환을 하면서 한글이 깨지게 됩니다.

이 문제를 해결하기 위해 삽질을 좀 해 보았고.. http://my.oops.org/120 에서 결과물을 보실 수 있습니다.

위 패치의 요는.. main.inc.php 에서 default charset 을 지정해 놓고, 메일에 charset 이 지정되지 않았을 경우, 이 default charset 을 사용하도록 하는 것입니다.

댓글

김정균의 이미지

http://trac.roundcube.net/ticket/1484961 에 패치를 올렸는데.. 반응이 영 시원찮습니다. 상태를 later 로 바꾸어 버렸군요. 자기네들은 그런일 별로 없다는 투인것 같은데요.. (받아들이기 나름이지만.. 쩝.. 전 그런 인상을 받았습니다.)

roundcube 사용하시는 분들이라면 위의 패치를 올린 페이지에 가서 이 패치를 좀 적용해 달라고 압박해 주세요. 안그러면 우리는 계속 패치해서 사용해야 합니다. 아니면.. imap package 를 사용하지 말든지.. (dovcoat 같은 다른 imap 서버를 사용하든지..)

academic의 이미지

later로 바꾼 건 아마 0.1.1 버전 릴리즈하기 직전이라 그런 것 아닐까요?

4월 5일자로 새 버전이 릴리즈되어 있던데요.

어찌 됐건, 빨리 반영이 됐으면 좋겠습니다.

p.s. UW Imapd 만의 문제는 아니고... 제가 쓰는 cyrus imapd도 마찬가지인 걸로 보면 Imapd 에 상관없는 듯 합니다.

--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

김정균의 이미지

0.1.1 용으로 패치를 다시 만들었습니다.

Multi Part 가 아니고 charset 을 가지고 있지 않을때, default charset 을 사용하지 않던 문제를 같이 수정했습니다. http://my.oops.org/120 에서 0.1.1 용을 받으시면 됩니다.

한글 파일 첨부 문제를 제기하시든데, 이번 패치에서는 일단 제 서버에서는 정상 작동 하는 것을 확인했습니다.

academic의 이미지

감사합니다. 잘 쓰겠습니다.

항상 좋은 일만 함께 하시길.

--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

김정균의 이미지

몇몇 분들이 요청을 하셔서, 첨부파일 한글 문제 패치를 올립니다. http://my.oops.org/120 에서 0.1.1용 패치 중 roundcubemail-0.1.1-multibyte-attach.patch를 적용하시면 됩니다.

만든 소감으로는 roundcubemail 개발자의 I18N에 대한 개념이 안드로메다에 가 있다는 생각이 들더군요. 어쩌면 안드로메다가 아니라, 아직 생성이 안되었을지도 모른다는 생각도 듭니다. 덕분에 KSC5601 이라는 pear package (ftp://mirror.oops.org/pub/oops/php/pear/KSC5601/) 를 만들게 되었고, 나름 pure php code 로 charset 변환하는데는 나름 성능이 괜찮게 나오게끔 만든 것 같네욤.

KSC5601 pear package 선전을 좀 하자면..

KSC5601 <-> Unicode (UCS4/NCR) <-> UTF8

지원을 합니다. KSC5601<->UTF8 간의 변환시에는 iconv 나 mbstring 이 설치되어 있으면, 이 확장들을 이용하고, 설치되어 있지 않으면 pure php code 로 변환을 합니다. 상대방이 iconv 나 mbstring 이 설치되어 있는지 여부를 확인하기 귀찮을 경우 괜찮게 사용할 수 있을 듯 싶습니다.

그리고, KSX1001 (EUC-KR 확장 부분 .. 똠똡 이런거..) 명칭이 정확하게 머라해야 할지 모르겠네요. 머 하여튼 MS CP949에서 지원하는 한글 확장 영역의 경우, NCR code 로 처리를 자동으로 하도록 되어 있습니다.

code table 이 400K나 되는지라, 왠만하면 eAccelerator 같은 cache 를 사용하시거나 또는 auto_prepend_file 파일에 table file 을 등록하시는 것이 아마 심적으로 이로우실 겁니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.