<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:wfw="http://wellformedweb.org/CommentAPI/"
     >
  <channel>
    <title>Jaemok</title>
    <link>http://jmjeong.com</link>
    <description>jmjeong, Jaemok Jeong</description>
    <pubDate>Thu, 11 Mar 2010 01:43:06 GMT</pubDate>
    <generator>Blogofile</generator>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Gmail 메일 정리하기</title>
      <link>http://jmjeong.com/blog/purgegmail</link>
      <pubDate>Tue, 17 Nov 2009 14:19:00 KST</pubDate>
      <category><![CDATA[python]]></category>
      <category><![CDATA[mail]]></category>
      <guid isPermaLink="true">http://jmjeong.com/blog/purgegmail</guid>
      <description><p>
회사 메일을 forward 하여 보는 용도로 사용 중인 gmail 계정이 최근 quota가 다 찼다.  2007년 9월부터
forward를 시작했으니 2년 3개월 동안 7392M를 사용했다.
</p><p>
Gmail이니 혹시 soft quota가 적용되어서 경고 메시지는 보여주되 메일을 받아주거나, 혹은 upgrade 요청
popup등이 뜨지 않을까 생각했었는데, 애초 생각했던대로 quota exceed 경고를 보내주고 메일을 반송했다.
</p><i>Read more...</i></description>
      <content:encoded><![CDATA[
<div id="outline-container-1" class="outline-2">

<div class="outline-text-2" id="text-1">
<p>
회사 메일을 forward 하여 보는 용도로 사용 중인 gmail 계정이 최근 quota가 다 찼다.  2007년 9월부터
forward를 시작했으니 2년 3개월 동안 7392M를 사용했다.
</p>
<img src="http://grab.by/C8a" />
<p>
Gmail이니 혹시 soft quota가 적용되어서 경고 메시지는 보여주되 메일을 받아주거나, 혹은 upgrade 요청
popup등이 뜨지 않을까 생각했었는데, 애초 생각했던대로 quota exceed 경고를 보내주고 메일을 반송했다.
</p>
<img src="http://grab.by/C89" />
<p>
백업 목적의 메일이니 몇 년전 메일을 지우려고 하는데 gmail 인터페이스에서 한꺼번에 지우는 방법을 찾을
수가 없었다. offlineimap이나 gnus에서 처리하는 방법도 데이타를 다 받아와야 해서 속도가 느린 문제가
있다.
</p>
<p>
간단한 python 프로그램을 만들어서 특정날짜 이전의 메일은 삭제하도록 했다. IMAP4 protocol에 
<code>(before '02-Jan-2008')</code>과 같이 해당 날짜 이전의 메일에 대해서만 읽어오는 인터페이스가 유용했다.
</p>
<ul>
<li>
첫번째 버젼 : <a href="http://gist.github.com/236756">http://gist.github.com/236756</a>
<dl>
<dt>문제점</dt><dd>
테스트할 때에는 전체 보관함에서 메일이 없어서 정상적으로 삭제되었다고 생각했는데, 실제
quota는 늘어나지 않는다. Gmail의 특성상 메일이 삭제하면 실제 mail을 삭제하는 것이
아니고, 해당 메일에서 라벨만 제거하는 식으로 동작을 한다.  메시지를 '휴지통'으로 이동한
후, 휴지통에서 삭제하는 방법을 사용해야 한다.
</dd>
<dt>개선점</dt><dd>
Verbose tag가 없으면 빠른 처리를 위해 store에 <code>message id</code> set을 넘겨서 한꺼번에
처리하는 방법이 나을 것 같다.

</dd>
</dl>
</li>
<li>
수정버젼



<script src="http://gist.github.com/236838.js"></script>
</li>
</ul>
</div>
<div id="outline-container-1.1" class="outline-3">
<h3 id="sec-1.1">읽어볼만한 글 </h3>
<div class="outline-text-3" id="text-1.1">
<ul>
<li>
<a href="http://bugs.python.org/issue1389051">python 2.5.1의 imap4_ssl library bug &amp; patch</a>
</li>
<li>
<a href="http://www.doughellmann.com/PyMOTW/imaplib/">imaplib - IMAP4 client library</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.2" class="outline-3">
<h3 id="sec-1.2">Comments <span class="timestamp-wrapper"> <span class="timestamp">2009-12-04 Fri</span></span> </h3>
<div class="outline-text-3" id="text-1.2">
<p>
Gmail을 이용하는 장점 중에 하나가 대용량, 빠른 검색이므로 굳이 메일을 정리하지 않고, 
별도의 계정을 만들어서 pop3로 데이타를 읽어서 저장하는 것도 방법일 것 같다. 
</p>
<p>
독립된 자기 domain을 가지고 있는 경우에는 최대 100개의 account를 만들 수 있고, 
그렇지 않은 경우에도 신규 가입이 자유롭기 때문에 backup archive 계정을 만들고
<code>다른 계정에서 메일 가져오기</code> 기능을 이용하여 pop3로 backup을 하는게 더 낫다.
</p>
<p>
네트웍 속도에 가변적이겠지만, 대략 5분에 200통 가량 옮겨오고 있다.
</p>
<p>
Gmail 계정은 이론상 무한정으로 만들 수 있으므로, 메일을 archive하는 submail 계정을 만들어서,
이쪽으로 메일 내용을 옮기는게 더 좋다. <code>환경설정</code> - <code>계정</code> - <code>다른 계정에서 메일 가져오기</code>를
선택하여 POP3로 메일을 옮겨온다. 추후 예전 메일 검색은 archive된 계정에서 검색을 하면 된다. 
</p>
</div>
</div>
</div>]]></content:encoded>
    </item>
    <item>
      <title>Emacs Mail</title>
      <link>http://jmjeong.com/blog/emacsmail</link>
      <pubDate>Tue, 27 Oct 2009 07:41:00 KST</pubDate>
      <category><![CDATA[mail]]></category>
      <category><![CDATA[gnus]]></category>
      <category><![CDATA[emacs]]></category>
      <guid isPermaLink="true">http://jmjeong.com/blog/emacsmail</guid>
      <description><p>
KLDP에서 Gnus의 최신버전이 예전버전과는 달리 한글 입출력이 깔끔하게 <a href="http://kldp.org/node/103560">잘 지원된다는 글</a>을 보고,
Thunderbird와 함께 두 달 정도 사용을 했다. Emacs 23의 snapshot에 Gnus v5.13이 들어가 있고, mac에서는
별도의 utility 설정 없이도 gmail이나 회사 IMAP 메일로 접근하여 메일을 읽고 쓰는 것이 큰 문제가 없이
동작을 한다. 
</p><p><img src="/images/gnus.png" alt="Gnus" width="504" /></p><i>Read more...</i></description>
      <content:encoded><![CDATA[
<div id="outline-container-1" class="outline-2">

<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-1.1" class="outline-3">
<h3 id="sec-1.1">Gnus </h3>
<div class="outline-text-3" id="text-1.1">
<p>
KLDP에서 Gnus의 최신버전이 예전버전과는 달리 한글 입출력이 깔끔하게 <a href="http://kldp.org/node/103560">잘 지원된다는 글</a>을 보고,
Thunderbird와 함께 두 달 정도 사용을 했다. Emacs 23의 snapshot에 Gnus v5.13이 들어가 있고, mac에서는
별도의 utility 설정 없이도 gmail이나 회사 IMAP 메일로 접근하여 메일을 읽고 쓰는 것이 큰 문제가 없이
동작을 한다. 
</p>
<div class="figure">
<p><img src="/images/gnus.png" alt="Gnus" width="504" /></p>
</div>
<pre class="src src-elisp">(setq user-mail-address <span style="color: #8b2252;">"jmjeong@nemustech.com"</span>)
(setq user-full-name <span style="color: #8b2252;">"Jaemok Jeong"</span>)

(setq gnus-select-method '(nnimap <span style="color: #8b2252;">"nemustech"</span>
    (nnimap-address <span style="color: #8b2252;">"mail.nemustech.com"</span>)
    (nnimap-server-port 993)
    <span style="color: #b22222;">; </span><span style="color: #b22222;">&#47196;&#44536;&#51064; &#51221;&#48372; &#54028;&#51068;&#51012; &#49324;&#50857;&#54616;&#50668; &#51088;&#46041; &#47196;&#44536;&#51064; &#54616;&#44256;&#51088; &#54624; &#44221;&#50864; &#49324;&#50857;
</span>    (nnimap-authinfo-file <span style="color: #8b2252;">"~/.imap-authinfo"</span>)   
    (nnimap-stream ssl)))
<span style="color: #b22222;">;; </span><span style="color: #b22222;">.imap-authinfo file format 
</span><span style="color: #b22222;">;;  </span><span style="color: #b22222;">
</span><span style="color: #b22222;">;;  </span><span style="color: #b22222;">machine mail.nemustech.com login MyEmailAddress password MyPassWord port 993
</span><span style="color: #b22222;">;;</span><span style="color: #b22222;">
</span>
(setq gnus-show-threads t)
(setq gnus-thread-indent-level 2)

(<span style="color: #7f007f;">require</span> '<span style="color: #008b8b;">bbdb</span>)                                                       
(bbdb-initialize)                                                     

<span style="color: #b22222;">;</span><span style="color: #b22222;">(add-hook 'message-send-hook 'ispell-message)
</span>(add-hook 'gnus-startup-hook 'bbdb-insinuate-gnus)

(setq bbdb-north-american-phone-numbers-p nil)
(setq bbdb-check-zip-codes-p nil)

(setq message-mode-hook
      (quote (
      (<span style="color: #7f007f;">lambda</span> nil (setq fill-column 72))
      turn-on-auto-fill
      bbdb-define-all-aliases
      )))
</pre>
<p>
<code>gnus-select-method</code>를 이용하여 nnimap으로 설정하고, 매번 passwd를 물어보는 문제는
<code>.nnimap-authinfo</code>  파일에 인증 설정을 하여 해결하였다. <a href="http://www.emacswiki.org/emacs/GnusEncryptedAuthInfo">GnusEncryptedAuthInfo</a>에 인증 암호를
encrypt하는 방법도 설명이 되어 있다. 
</p>
<p>
10년 사이에 "Gnus package도 많이 발전했구나, 여러 open source에서
UTF-8지원이 공식화되다보니 따로 localization에 대해서 고민을 안해도 되는구나" 생각을 하다가
<a href="http://www.emacswiki.org/emacs/GnusSpeed">Gnus의 느린속도</a>에 불만을 갖게 되었다. <a href="http://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail.html">Rmail</a>, <a href="http://www.mew.org/en/">Mew</a>, <a href="http://www.emacswiki.org/emacs/WanderLust">WanderLust</a>, <a href="http://www.emacswiki.org/emacs/CategoryViewMail">VM</a> 등을 고민하다가 내가 왜 예전에
<a href="http://jmjeong.com/index.php?display=LinuxTips">Gnus를 쓰다가 중단</a>했는지를 알게되었다. 
</p>
<ul>
<li>
사용하면서 느끼는 Gnus의 단점 두가지 <span class="timestamp-wrapper"> <span class="timestamp">2009-10-27 Tue</span></span>
<ul>
<li>
<b>느린 속도</b> IMAP으로 online상의 여러 folder에 있는 메일을 읽어올 때나, 큰 첨부파일을 갖는 메일을
읽을 때는 답답하다. 속도 이슈로 매력적인 score 기능을 활성화시킬 수가 없다. Gnus가 thread화 되지
않으면 당분간 해결이 쉽지 않을 것 같다. Offlineimap을 이용하여 local로 imap folder를 sync하여
Gnus를 활용하면 어떨까? Mew에서는 mime parsing을 별도의 C utility로 만들어서 하던데 이런 방법도
concurrent emacs가 아니고도 해결할 수 있는 좋은 방안일 듯 하다.
</li>
<li>
<b>너무 많은 명령어</b> Gnus가 news reader로 제작되다보니, mail client로만 쓰기에는 기능이 너무 많다

</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.2" class="outline-3">
<h3 id="sec-1.2">Rmail </h3>
<div class="outline-text-3" id="text-1.2">
<p>
Rmail은 Emacs의 기본적으로 내장되어 있는 mail viewer이다. 
</p>
<ul>
<li>
<b>빠른 속도</b> IMAP 데이타를 <code>fetchmail, procmail</code>을 이용하여 local로 옮기고, RMAIL로 읽으니 <code>mail,     mutt</code> 속도로 읽을 수 있었다.
</li>
<li>
<b>MIME Encoding 문제</b> Charset과 MIME decoding을 제대로 못하는 문제가 있다. <a href="http://www.emacswiki.org/emacs/RmailMime">참고 : RmailMime</a>
<div class="figure">
<p><img src="/images/rmail.png" alt="/images/rmail.png" /></p>
</div>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.3" class="outline-3">
<h3 id="sec-1.3">ViewMail </h3>
<div class="outline-text-3" id="text-1.3">
<p>
<a href="http://www.emacswiki.org/emacs/CategoryViewMail">VM</a>은 XEmacs에 내장되어 배포되고 있는 메일 client이다. 현재 VM version 8.0.12 버전까지 나와 있고,
Emacs에서도 문제없이 수행이 된다. Default 설정으로는 한글 encoding과 MIME decoding이 원할하지
않다. 이것저것 설정을 조정해가면서 쓸만큼 매력적이지 않아서 일단 패스.
</p>
<div class="figure">
<p><img src="/images/viewmail.png" alt="/images/viewmail.png" /></p>
</div>
</div>
</div>
<div id="outline-container-1.4" class="outline-3">
<h3 id="sec-1.4">Wanderlust </h3>
<div class="outline-text-3" id="text-1.4">
<p>
<a href="http://www.gohome.org/wl/">Wanderlust Homepage</a>, <a href="http://emacs-fu.blogspot.com/2009/06/e-mail-with-wanderlust.html">email with wanderlust</a>에서 wanderlust에 대한 좋은 평들이 있다.  홈페이지는
몇년동안 수정이 되고 있지 않고, CVS에도 commit log가 꽤 오래전이다. Wiki에 update되어 있는 글들도
2006년 이후로는 올라와 있지 않다. Emacs 23에서 UTF-8을 잘못 encoding한다는 <a href="http://www.emacswiki.org/emacs/WlEmacsTwentyThree">보고</a>도 있다. 좋은 장점에도
불구하고 오래되고, 설정하기 복잡하고, SEMI, APEL, FLIM등 외부 package에 의존성이 있다는 문제점이
있다.
</p>
<div class="figure">
<p><img src="/images/wl.png" alt="ViewMail" width="504" alt="wanderlust" width="504" /></p>
</div>
<p>
Gnus에 빠른 속도와 사용하기 편한 인터페이스, Offline IMAP supoort등의 장점이 많이 있었다. SEMI(Emacs
mime interface)가 상대적으로 예전 버젼이다보니 최신 gnus에 들어있는 것처럼 MS의 비표준 encoding에
대한 예외처리가 되어 있지 않다. <code>ks_c_5601-1987</code>을 <code>euc-kr</code>로 치환하는 것을 찾아보려 했으나, 문서도
많지 않고 해서 사용하지 않기로 했다. Gnus와 wanderlust를 동시에 사용하니, MIME쪽의 의존성 문제인지
Gnus쪽의 메일 처리가 이상해지는 문제도 있었다.
</p>
</div>
</div>
<div id="outline-container-1.5" class="outline-3">
<h3 id="sec-1.5"><a href="http://www.mew.org/">Mew</a> </h3>
<div class="outline-text-3" id="text-1.5">
<div class="figure">
<p><img src="/images/mew.png" alt="Mew" width="504" /></p>
</div>
<p>
일본에서 제작되어 다국어에 대한 고려가 많이 되어 있다. 
Gmail을 pop이나 IMAP을 통해 접근하여 메일을 읽는것이 가능하다. 체감속도는 wanderlust에 비해 약간 느리다.
</p>
<pre class="src src-elisp">(setq mew-pop-size 0)
(setq mew-use-cached-passwd t)
(setq mew-passwd-timer-unit 999)
(setq mew-passwd-lifetime 999)
(set-default 'mew-decode-quoted 't)  
(setq mew-prog-pgp <span style="color: #8b2252;">"gpg"</span>)
(setq mew-pop-delete nil)
(setq mew-config-alist 
<span style="color: #b22222;">;;</span><span style="color: #b22222;">Gmail
</span> '(
  (<span style="color: #8b2252;">"default"</span>
 (<span style="color: #8b2252;">"name"</span>      . <span style="color: #8b2252;">"Jaemok Jeong"</span>)
 (<span style="color: #8b2252;">"user"</span>      . <span style="color: #8b2252;">"jmjeong"</span>)
 (<span style="color: #8b2252;">"mail-domain"</span>   . <span style="color: #8b2252;">"gmail.com"</span>)
 (<span style="color: #8b2252;">"proto"</span> . <span style="color: #8b2252;">"+"</span>)
 (<span style="color: #8b2252;">"pop-ssl"</span>   . t)
 (<span style="color: #8b2252;">"pop-ssl-port"</span>  . <span style="color: #8b2252;">"995"</span>)
 (<span style="color: #8b2252;">"prog-ssl"</span>  . <span style="color: #8b2252;">"/opt/local/bin/stunnel"</span>)
 (<span style="color: #8b2252;">"pop-auth"</span>  . pass)
 (<span style="color: #8b2252;">"pop-user"</span>  . <span style="color: #8b2252;">"jmjeong"</span>)
 (<span style="color: #8b2252;">"pop-server"</span>    . <span style="color: #8b2252;">"pop.gmail.com"</span>)
 (<span style="color: #8b2252;">"smtp-ssl"</span>  . t)
 (<span style="color: #8b2252;">"smtp-ssl-port"</span>. <span style="color: #8b2252;">"465"</span>)
 (<span style="color: #8b2252;">"smtp-auth-list"</span> . (<span style="color: #8b2252;">"PLAIN"</span> <span style="color: #8b2252;">"LOGIN"</span> <span style="color: #8b2252;">"CRAM-MD5"</span>))
 (<span style="color: #8b2252;">"smtp-user"</span> . <span style="color: #8b2252;">"jmjeong"</span>)
 (<span style="color: #8b2252;">"smtp-server"</span>   . <span style="color: #8b2252;">"smtp.gmail.com"</span>)
 )
 ))
(setq mew-summary-form '(type (5 date) <span style="color: #8b2252;">" "</span> (14 from) <span style="color: #8b2252;">" "</span> t (70 subj) ))
</pre>
</div>
</div>
<div id="outline-container-1.6" class="outline-3">
<h3 id="sec-1.6">속도. 속도. 속도. </h3>
<div class="outline-text-3" id="text-1.6">
<ul>
<li>
OfflineImap 프로그램을 이용하여 9G가 넘는 IMAP folder를 Local machine으로 옮겨서 nnmaildir을
이용해서 읽는 것을 시도해 봤는데 만족스럽지가 않다. 생각과는 달리 Gnus의 nnmaildir backend가
nnimap보다 빠르지 않다는 newsgroup의 글들이 검색이 된다. Fetchmail + procmail을 통해 imap에서
메일을 읽어서 local dovecat IMAP 서버로 서비스하게 변경하고 만족한다는 글이 있다. 

</li>
<li>
<a href="http://jmjeong.com/?Emacs/Mew">Mew</a>에서는 maildir folder를 내부 관리용으로는 사용하는데 maildir를 접근할수 없다는 글이 있다. 
maildir folder를 사용하는 것이 대안이 될 수 없는가?  Mew로 IMAP folder 접근하는 것도 체감속도가
빠르지 않다. 

</li>
<li>
Gnus와 Thunderbird, Apple Mail을 잘 조합해서 써야겠다

</li>
</ul>
</div>
</div>
</div>]]></content:encoded>
    </item>
  </channel>
</rss>
