テキストベースメーラ「Mave」の使い方 必要なパッケージ Ruby、curses および qdbm/gdbm ライブラリ 1. アーカイブの取得と展開 http://sourceforge.jp/projects/mave/downloads/xxxxx/mave-2.98.tgz/ にアクセスする。 $ tar xvfz mave-2.98.tgz $ cd mave-2.98 2. ユーザ設定 $ cp mave.config.sample mave.config $ vi mave.config 'Main' アカウントの部分を、あなたの設定に書き換えてください。 とりあえず Mave を試してみたい場合、以降を飛ばして 3. に進んでも結構です。 好みのエディタ環境を設定してください。 @configs[:EDITOR_TYPE] = ['system'|'forkexec'] system: Mave は curses ウィンドウを閉じ、同じコンソール上にエディタを起動します。CUI 向き。 forkexec: Mave は子プロセスを fork し、別ウィンドウでエディタを起動します。GUI 向き。 @configs[:EDITOR] = '/usr/bin/editor %s' エディタを起動するコマンド定義です。%s はファイル名に置換されます。 好みのビューア環境を設定してください。 @configs[:VIEWER_TYPE] = ['system'|'forkexec'] @configs[:VIEWER] = '/usr/bin/viewer %s' 設定はエディタと同様です。 ファイルマネージャの環境を設定してください。 @configs[:FILE_MANAGER_TYPE] = ['system'|'forkexec'] @configs[:FILE_MANAGER] = '/usr/bin/nautilus %s >/dev/null 2>&1' 添付ファイルの保存先など、ファイル操作のためディレクトリを開く際に利用されます。 ファイル識別コマンドを設定してください。 @configs[:FILE_IDENTIFIER] = '/usr/bin/file -b -i %s 2>/dev/null' 添付ファイルを付加する場合など、ファイルタイプの識別の際に利用されます。 3. メールを蓄積するディレクトリの作成 $ mkdir ~/mave.mails ここで指定したディレクトリ以外へ、ファイルを書き込むことはありません。 この時点で、メールを送信するなら、事前にアドレス帳を作成しておくことを勧めます。 「15. アドレス帳の作成」の項を確認して下さい。 4. Mave の実行 $ ./mave 文字化けが起きる場合「メモ:」の項を確認してください。 5. メールの取得 Ctrl + x、p と、キーを押すと、サーバからメールが取得されます。 デフォルトでは、Mave は、即座にサーバ上からメールを削除しません。 メールを削除するまでのタイムラグは「:POP_KEEP_TIME」に設定されています。 これにより、現在利用中のメーラと並行して Mave を利用可能です。 ステータスウィンドウは、PgUp, PgDn でスクロールできます。 6. メールを閲覧する Vi エディタのように、それぞれ、h, j, k, l キーが、左、下、上、右に割り当てられています。 メール一覧の表示の意味は以下になります。 x. 22 Amazon.co.jp 999 古い || +-親(+) / 子(-) / 折り畳み中(#/=) |+-フラグ(F) / 注意(#) |+-マルチパートメール(@)(添付あり) +-未読(x) +-To あなた(w) / Cc あなた(v) 以下の表示状態の操作ができます。 r キー: 未読表示の切り替え f キー: フラグのオン、オフ o キー: スレッドを折り畳む、開く n キー: 注意の印のオン、オフ Ctrl + x、v と、キーを押すと、メールビューアが開きます。 7. インクリメンタル検索 メール一覧ビュー、または、メール本文ビューで、Ctrl + s を押すと、インクリメンタル検索ダイアログが開きます。 キー入力の都度、検索が進みます。 検索語が見つかった状態で、Ctrl + s を押すと、次を検索します。 検索を中断したり、検索ダイアログを閉じるには、Ctrl + g を押します。 Ctrl + r を押すと、逆方向に検索します。 別途、漢字かな変換エンジン KAKASI と、その Ruby バインディングを導入することにより、 メール一覧ビューで、ローマ字キー入力によるインクリメンタル検索が可能になります。 本機能は、日本語をローマ字変換し、それをキャッシュすることにより実装されています。 キャッシュの内容は、ESC、Shift + q を押すことにより確認できます。 8. メールを作成/編集する Ctrl + x、n と、キーを押すと、新規メールを作成します。 Ctrl + x、r と、キーを押すと、返信メールを作成します。 メールは「草稿」フォルダに格納されます。 Ctrl + x、e と、キーを押すと、既存のメールを編集します。 メールは上書きされます。 送信先(To:, Cc:, Bcc:)の欄では、アドレス帳の機能を用いた宛先指定ができます。 2 つのハイフンで囲った文字列は、アドレス帳で定義した ID と見なされ、以下のように変換されます。 定義の例) entries << { :MAIL => 'x-tanaka@google.com', :ID => '田中', } entries << { :MAIL => 'y-kato@yahoo.co.jp', :ID => '加藤@private', :SEND => 'かとちゃん', } 編集時) 送信時) To: --田中--, => To: 田中 様 , かとちゃん --加藤@private-- 9. フォルダ機能 メール一覧ビューで、左(h)を押すと、フォルダ一覧ビューに移行します。 フォルダ一覧ビューでは、上下(k, j)で選択、右(l)でフォルダ内に移動できます。 また、ショートカットキーを押すことでも、フォルダ内に移動できます。 フォルダ一覧の表示の意味は以下になります。 x 0) 受信箱 (5/52) . a) コミュニティ (2/38) x b) 開発 (1/8) . d) 草稿 (0/23) . o) 送信箱 (0/0) . s) 送信済み (0/25) . t) ゴミ箱 (0/18) ^ ^ ^^^^^^ ^^^^ | | | 未読数 / メール総数 | | +-フォルダ名 | +-ショートカットキー +-新着メールあり(x) r キーで、新着メールマークをオン、オフできます。 フォルダ一覧ビューで、Ctrl + x、n と、キーを押すと、新規にフォルダが作成できます。 フォルダを選択した状態で、Ctrl + x、e と、キーを押すと、フォルダの設定を編集できます。 フォルダの設定の編集により、表示名、表示順、メールの振り分けなどが変更できます。 設定の例については「mave.folderconfig.master」を見てください。 10. メールの移動、コピー、削除 メール一覧ビューで、Ctrl + x、m と、キーを押すと、別のフォルダにメールを移動できます。 フォルダ一覧ビューが開くので、移動先のフォルダを選択してください。 Ctrl + x、c と、キーを押すと、別のフォルダにメールをコピーできます。 Ctrl + x、d と、キーを押すと、メールを削除できます。 「ゴミ箱」フォルダ以外での削除操作は「ゴミ箱」フォルダへの移動になります。 「ゴミ箱」フォルダで削除操作を行うと、メールは完全に削除されます。 11. メールの送信 Ctrl + x、s と、キーを押すと「送信箱」フォルダにあるメールが送信されます。 通常、編集したメールは「草稿」フォルダに格納されますので、 メールを書き上げ、送信準備が整ったら「送信箱」フォルダに移動し、送信対象とします。 送信が完了したメールは「送信済み」フォルダに移動されます。 12. メールのインポート Ctrl + x、Shift + i と、キーを押すと、アカウント毎の設定にしたがって、メールがインポートされます。 インポートの設定は、インポート対象を標準出力にリストアップするコマンドで表されます。 例) account[:IMPORT_COMMAND] = %Q!/usr/bin/find /home/old_user/mave.mails -name '*.eml' | grep -E '/Inbox/' | sed 's/\\/.*\\//& /'| sort -k 2 | sed 's/ //'! 別途、テキストファイルに記載しておき、それを cat する方法も考えられます。 インポート対象は、1 メール、1 ファイルの形式である必要があります。 現状、mbox 形式等には対応していません。 デフォルト設定には、Mave のマニュアルをメール形式にしたものを、インポートする設定が含まれています。 Mave 起動の直後に、Ctrl + x、Shift + i と、キーを押してみてください。 13. メールのマーク メール一覧ビューで、m キーを押すと、メールをマークできます。 マークされたメールは「M」で表示されます。 - x. 22 Amazon.co.jp 'x-tanaka@google.com', :ID => '田中', } entries << { :MAIL => 'y-kato@yahoo.co.jp', :ID => '加藤@private', :SEND => 'かとちゃん', } entries << { :MAIL => 'z-suzuki@abc.co.jp', :ID => '鈴木@ABC', :SEND => '鈴木さん', } アドレス帳スクリプトを実行することで、アドレス帳 DB に登録されます。 $ ./mave_address 16. 添付ファイルの操作 受信したメールの添付ファイルを閲覧する。 メール一覧ビューで、Ctrl + x、x と、キーを押すと、メール中のすべての添付ファイルが、関連ディレクトリに展開されます。 関連ディレクトリとは、メールと対となるディレクトリで、任意のファイルを保存しておけます。 関連ディレクトリは、メール一覧ビューで、ESC、f と、キーを押すことで、指定のファイルマネージャにて開くことができます。 受信したメールの添付ファイルを修正して返信する。 メール一覧ビューで、Ctrl + x、r と、キーを押し、返信メールを作成すると、X-Mave-Extract-Targets ヘッダが付加されています。 そのまま、メールを編集して保存すると、X-Mave-Extract-Targets ヘッダの下の記載に対応する添付ファイルが、返信メールの関連ディレクトリに展開されます。 返信メールに対して、ESC、f と、キーを押すと、関連ディレクトリが開くので、必要に応じて添付ファイルを修正します。 Ctrl + x、e と、キーを押して返信メールを編集します。展開された添付ファイルは、X-Mave-Relations ヘッダの下に記載されています。 返信メールに添付して返信したい場合、X-Mave-Relations ヘッダの下から、X-Mave-Attachments ヘッダの下に記載を移動します。 あとは、通常通り「送信箱」フォルダに移動し、Ctrl + x、s と、キーを押して送信すると、添付されて送信されます。 新規メールに、新規に添付ファイルを添付して送信する。 メール一覧ビューで、Ctrl + x、n と、キーを押して新規メールを作成すると、空の X-Mave-Relations ヘッダが付加されています。 X-Mave-Relations ヘッダの下に、新規に添付する予定のファイル名を記載して保存すると、関連ディレクトリ内に指定のファイル名の空ファイルが作成されます。 新規メールに対して、ESC、f と、キーを押すと、関連ディレクトリが開くので、必要に応じて空ファイルを編集します。 あとは、上記と同様に、X-Mave-Relations ヘッダの下から、X-Mave-Attachments ヘッダの下に記載を移動し、送信動作を行います。 17. クリップ(引用)、タグジャンプ クリップ(引用)機能とは、メールの一部を引用し、別のメールに貼り付ける機能です。 貼り付けられる情報には、メールのメッセージ ID 情報(タグ)が含まれるので、そこから引用元のメールに飛ぶ(タグジャンプ)ことができます。 これらの機能を活用すれば、メーラ上でスケジュール管理したり、後述する全文検索機能を実現したりすることができます。 メール本文ビューの、上から十数行目の左端にある「]」マークは、主にクリップを行う際に利用するカーソルになります。 引用を開始したい行にカーソルを合わせ、Ctrl + c と、キーを押すと、該当の行がクリップファイルに記録されます。 引用操作を行うとカーソルは次の行に移動するので、続けて Ctrl + c と、キーを押すことで、連続して複数行を引用できます。 クリップファイルは、デフォルトでは、メールを蓄積するディレクトリの下の _pop の下に、mave.clip というファイル名で記録されます。 エディタによるメールの編集中に、ファイルの挿入機能を利用するなどして、このファイルを貼り付けてください。 貼り付けられた引用文は、以下のような形式になっています。 * 【会議開催通知】メーラ「Mave」2.97 の最終レビュー <1268959354.007885.8ed5d181@mave.zakato.itline.jp> line:18 - 1. 日 時: 4 月 1 日 (木) 13:15 〜 15:00 - 2. 場 所: 503 会議室 引用文の 2 行目にある、メッセージ ID 情報のタグの行にカーソルを合わせて、Ctrl + ] と、キーを押すと、引用元のメールにタグジャンプします。 タグジャンプ直前の位置はタグスタックに保存されていますので、Ctrl + t と、キーを押すと、元の位置に戻ることができます。 18. 全文検索 別途、全文検索エンジンを導入することで、フォルダ単位で、メールの内容の全文検索を行うことができます。 基本的に、全文検索機能は、シェルコマンドの実行、結果の取り込み、タグジャンプの組み合わせにより実装されています。 記述例として、Hyper Estraier, Namazu に対するインタフェイスが用意されています。 インタフェイスの記述例については、mave.folderconfig.common 内の、fulltext_search メソッドをご覧下さい。 全文検索を行いたいフォルダに移動し、メール一覧ビュー、または、メール本文ビューで、ESC、s を押すと、全文検索ダイアログが開きます。 検索したい語句を入力し、Enter キーを押すと、検索結果は、所定のフォルダに、メールの形で格納されます。 検索結果上で、タグジャンプ機能を利用することで、実際のメールに飛ぶことができます。 19. シェルコマンドの実行、結果の取り込み メール内に記載されているコマンド列を、シェルコマンドとして実行し、実行結果を、所定のフォルダに、メールとして取り込むことができます。 シェルコマンドとして実行したい行にカーソルを合わせ、ESC、! と、キーを押すと、該当の行が実行されます。 なお、実行結果が、擬似的にメールの形式を取っている場合、メールヘッダの内容が、取り込むメールに反映されます。 これを利用して、取り込まれるメールの Subject や Message-ID を制御することができます。 また、X-Mave-Store-Folder 疑似ヘッダを利用することで、メールの取り込み先フォルダを指定することもできます。 具体的には、記載事例をまとめたメール(件名: スクリプトランチャの例)をご覧下さい。 20. 添付忘れ防止機能、送信直前/直後のスクリプト実行 メール送信の直前/直後に、スクリプトを実行させることができます。 これを利用して、メールの送信直前に、本文を精査し、添付忘れを防止する機能などを実装することができます。 スクリプトの記述例については、mave.folderconfig.common 内の、presend メソッドをご覧下さい。 21. 終了する Ctrl + x、c と、キーを押すと、Mave は終了します。 22. ウェブメールビューア「Maverick」 「Maverick」は、ウェブ経由でメールを閲覧することができる cgi スクリプトです。 メールデータ、および、全文検索インデックスは完全に mave と共用です。 別途、Apache と eRuby を導入し、mave のディレクトリを public_html の下に移動、 dot.htaccess を参考にアクセス権限を適切に設定して下さい。 添付の mave_fetch を crontab 等により周期的に実行することで、Gmail っぽく使えます。 それでは。 メモ: ひらがなや漢字などが化けてしまうのは、 Ruby の標準 curses ライブラリが UTF-8 に対応していないのが原因です。 以下のサイトの記載を参考に、パッチを当てて、ncursesw ライブラリに対応してください。 http://www.itline.jp/~svx/diary/?date=20091022 現在、試験的に EUC-JP の端末環境へも対応可能です。 この場合、上記のパッチを当てる必要はありません。 mave.config の「:TERMINAL_CHARSET」に EUC-JP をセットし、mave_base.rb を一部変更してください。 端末から「export LANG=ja_JP.eucjp」を実行する必要もあるかもしれません。 117 def enspc 118 # return(self) # UTF-8 以外ならコメントを生かす 119 ^ self.gsub(/[\xC0-\xE2][\x80-\xBF]+/) {|c| #### for UTF8 いーかげん +-この「#」を消す また、試験的に SHIFT_JIS での Windows コンソール環境への対応も進めています。 mave.config の「:TERMINAL_CHARSET」に SHIFT_JIS をセットするなどをお試し下さい。 Mave プロジェクトオフィシャルページ: http://sourceforge.jp/projects/mave/ [EOF]