labunix's blog

labunixのラボUnix

コマンドラインで日本語メールを読む



コマンドラインで日本語メールを読む
 ※新しいパッケージを導入しない方針で進める。
  もちろん、わざわざGUIやメールクライアントを入れて遅くなるようなこともしない。
  簡単に言うと、追加導入が出来ない環境であることを想定。
 
 参考:Linuxでの文字化けと文字コード変換
 http://www.uetyi.mydns.jp/wordpress/command/entry-312.html

■kccは無く、nkfがあります。

$ dpkg -L kcc > /dev/null 2>&1 && echo "ok"
$ dpkg -L nkf > /dev/null 2>&1 && echo "ok"
ok

■一応、導入しようと思えばkccパッケージはあります。

$ apt-cache search ^kcc
kcc - Kanji code filter

■「nkf --guess」では、文字コードが混在しているとBINARYを返します。

 ※反対に「nkf --guess」オプションで判定できる場合は、
  「nkf -Is -Du8」や「nkf -Iu8 -Du8」のように入力側のエンコードを
  指定する必要は無い。

$ echo $LANG
ja_JP.UTF-8
$ echo "テスト" | nkf -Ds | mail -s "テスト" `whoami`

$ mail
>U  1 labunix@squeez  Mon Apr 30 17:40   15/545   M^CeM^CXM^Cg
s 1 utf8-sjis.txt

$ nkf --guess utf8_sjis.txt
BINARY

$ grep "Subject" utf8_sjis.txt | nkf --guess
UTF-8 
$ grep -v "Subject" utf8_sjis.txt | nkf --guess
Shift_JIS

■「lv」コマンドのページャを解除(Fromなし)

$ grep "Subject" utf8_sjis.txt | lv -Du8 | awk '{print}'; \
>   grep -v "Subject\|:" utf8_sjis.txt | lv -Du8 | awk '{print}'
Subject: テスト

テスト

■Fromあり

$ grep "Subject" utf8_sjis.txt | lv -Du8 | awk '{print}'; \
  grep -v "Subject\|[A-z]:" utf8_sjis.txt | lv -Du8 | awk '{print}'
Subject: テスト
From labunix@squeeze.labunix.net  Mon Apr 30 17:52:56 2012
        id 565ABF670F; Mon, 30 Apr 2012 17:52:56 +0900 (JST)

テスト