「Notmuch」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(Pkg/AUR テンプレートの更新)
 
(2人の利用者による、間の3版が非表示)
10行目: 10行目:
 
Notmuch は C で書かれており sup-mail より数倍高速に動作します。Notmuch はインデックスの作成中に終了することもでき、次の起動時に続きからインデックス作成を続行します。sup-mail と同じように、不要なメールメッセージを永久に削除する手段は用意していません。メールの取得や送信、メールアドレスの保存などは行わないため [[OfflineIMAP]], [[msmtp]], ''abook'' などのプログラムを使う必要があります。
 
Notmuch は C で書かれており sup-mail より数倍高速に動作します。Notmuch はインデックスの作成中に終了することもでき、次の起動時に続きからインデックス作成を続行します。sup-mail と同じように、不要なメールメッセージを永久に削除する手段は用意していません。メールの取得や送信、メールアドレスの保存などは行わないため [[OfflineIMAP]], [[msmtp]], ''abook'' などのプログラムを使う必要があります。
   
Notmuch は {{Pkg|notmuch}} または {{AUR|notmuch-git}} パッケージでインストールできます。
+
Notmuch は {{Pkg|notmuch}} パッケージでインストールできます。
   
 
公式パッケージでは [[python]], [[vim]], [[emacs]] バインディングを提供します。
 
公式パッケージでは [[python]], [[vim]], [[emacs]] バインディングを提供します。
29行目: 29行目:
   
 
===Vim===
 
===Vim===
vim インターフェイスは notmuch に含まれています。起動するには:
+
vim インターフェイスは {{pkg|notmuch-vim}} に含まれています。起動するには:
 
$ vim -c NotMuch
 
$ vim -c NotMuch
   
 
===alot===
 
===alot===
alot は notmuch のスタンドアロンな CLI インターフェイスで、python で書かれています。[[AUR]] の {{AUR|alot}} や {{AUR|alot-git}} でインストールできます。
+
alot は notmuch のスタンドアロンな CLI インターフェイスで、python で書かれています。[[AUR]] の {{Pkg|alot}} や {{AUR|alot-git}} でインストールできます。
   
 
Alot は [[wikipedia:Mailcap|mailcap]] を使用して様々な種類のファイルを処理します。html メールも含まれているため、html メールを表示するには {{Ic|~/.mailcap}} ファイルの設定が必要です。{{Ic|~/.mailcap}} に以下の行を記述してください:
 
Alot は [[wikipedia:Mailcap|mailcap]] を使用して様々な種類のファイルを処理します。html メールも含まれているため、html メールを表示するには {{Ic|~/.mailcap}} ファイルの設定が必要です。{{Ic|~/.mailcap}} に以下の行を記述してください:
44行目: 44行目:
   
 
===bower===
 
===bower===
[https://github.com/wangp/bower bower] は [https://mercurylang.org/ Mercury] によって書かれた、もうひとつの CLI インターフェイスです。
+
[https://github.com/wangp/bower bower] は [https://mercurylang.org/ Mercury] によって書かれた、もうひとつの CLI インターフェイスです。{{AUR|bower-mail}} パッケージでインストールすることができます。
   
 
===Neomutt===
 
===Neomutt===
[http://www.neomutt.org/ Neomutt] は多数のパッチが適用された mutt のフォークです。[http://www.neomutt.org/feature/notmuch Notmuch] の統合パッチも含まれています。{{AUR|neomutt}} または {{AUR|neomutt-git}} パッケージでインストールできます。
+
[http://www.neomutt.org/ Neomutt] は多数のパッチが適用された mutt のフォークです。[http://www.neomutt.org/feature/notmuch Notmuch] の統合パッチも含まれています。{{Pkg|neomutt}} または {{AUR|neomutt-git}} パッケージでインストールできます。
  +
  +
===astroid===
  +
  +
[https://github.com/astroidmail/astroid Astroid] は C++ と GTK+ で書かれたグラフィカルな MUA で notmuch のインターフェイスです。{{AUR|astroid}} (安定版) または {{AUR|astroid-git}} (開発版) パッケージでインストールできます。高速な GUI を備えており、HTML や添付ファイルをプレビューしたり、キーボードで操作することができます。設定項目が多く、お好きなエディタを使うことが可能です。詳しくは [https://github.com/astroidmail/astroid/wiki wiki] や [https://github.com/astroidmail/astroid README] を参照してください。
   
 
===ner===
 
===ner===
  +
{{Note|Ner は開発が活発には行われなくなっています。GitHub の最後のコミットは2012年5月です。}}
[http://the-ner.org/ ner] - notmuch email reader - はまた別の CLI インターフェイスで、C++ によって書かれています。
 
  +
  +
[https://github.com/pioto/ner ner] - notmuch email reader - はまた別の CLI インターフェイスで、C++ によって書かれています。
   
 
{{AUR|ner-git}}{{Broken package link|{{aur-mirror|ner-git}}}} が [[AUR]] からインストールできます。
 
{{AUR|ner-git}}{{Broken package link|{{aur-mirror|ner-git}}}} が [[AUR]] からインストールできます。
56行目: 62行目:
 
==mutt の統合==
 
==mutt の統合==
 
[[mutt]] を MUA として使う場合、notmuch はメールのインデックス作成・検索を行う補完ツールとして役に立ちます。{{Pkg|notmuch-mutt}} パッケージに mutt と notmuch を統合するスクリプトが含まれています。
 
[[mutt]] を MUA として使う場合、notmuch はメールのインデックス作成・検索を行う補完ツールとして役に立ちます。{{Pkg|notmuch-mutt}} パッケージに mutt と notmuch を統合するスクリプトが含まれています。
  +
  +
{{Pkg|notmuch-mutt}} パッケージをインストールして notmuch を設定したら、mutt から {{ic|notmuch-mutt}} スクリプトを呼び出すキーバインドを追加してください。{{ic|.muttrc}} に以下のコードを追加することを推奨します:
  +
  +
macro index <F8> \
  +
"<enter-command>set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key<enter>\
  +
<shell-escape>notmuch-mutt -r --prompt search<enter>\
  +
<change-folder-readonly>`echo ${XDG_CACHE_HOME:-$HOME/.cache}/notmuch/mutt/results`<enter>\
  +
<enter-command>set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key<enter>" \
  +
"notmuch: search mail"
  +
  +
macro index <F9> \
  +
"<enter-command>set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key<enter>\
  +
<pipe-message>notmuch-mutt -r thread<enter>\
  +
<change-folder-readonly>`echo ${XDG_CACHE_HOME:-$HOME/.cache}/notmuch/mutt/results`<enter>\
  +
<enter-command>set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key<enter>" \
  +
"notmuch: reconstruct thread"
  +
  +
macro index <F6> \
  +
"<enter-command>set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key<enter>\
  +
<pipe-message>notmuch-mutt tag -- -inbox<enter>\
  +
<enter-command>set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key<enter>" \
  +
"notmuch: remove message from inbox"
  +
  +
上記のコードでは {{ic|F8}} で notmuch を使って受信ボックスを検索し、{{ic|F9}} で検索結果からスレッドを作成し、{{ic|F6}} で検索結果にタグを付けます。
  +
  +
===notmuch-mutt の問題===
  +
cpan/cpanm でインストールされた perl モジュールと pacman でインストールした perl モジュールが一致しないために、以下のようなエラーが表示されることがあります:
  +
Gnu.c: loadable library and perl binaries are mismatched (got handshake key 0xdb00080, needed 0xdb80080)
  +
notmuch-mutt の依存パッケージを cpan か pacman どちらかでインストールするようにしてください。
  +
  +
== NeoMutt の統合 ==
  +
  +
{{Pkg|neomutt}} を使用する場合、{{Pkg|notmuch-mutt}} パッケージは必要ありません。かわりに、{{Ic|~/.mailboxes}} を作成して基本的な (仮想) メールボックスを記述してください:
  +
{{hc|~/.mailboxes|2=
  +
virtual-mailboxes "inbox" "notmuch://?query=tag:inbox"
  +
virtual-mailboxes "archive" "notmuch://?query=tag:archive"
  +
virtual-mailboxes "sent" "notmuch://?query=tag:sent"
  +
virtual-mailboxes "newsletters" "notmuch://?query=tag:newsletters"
  +
}}
  +
  +
そして、仮想スプールファイルを有効化して mutt から仮想メールボックスを使えるようにしてください:
  +
{{hc|~/.muttrc|2=
  +
set virtual_spoolfile=yes
  +
set folder=''notmuch-root-folder''
  +
source ~/.mailboxes
  +
}}
  +
  +
この段階ではメールはまだタグ付けされていないため、mutt でメールボックスを見ても空のままです。仮想メールボックスを使うために、メールディレクトリのメールにタグを付ける必要があります。以下のようにシェルスクリプトを作成すると簡単です:
  +
{{hc|~/.scripts/notmuch-hook.sh|2=
  +
#!/bin/sh
  +
notmuch new
  +
# retag all "new" messages "inbox" and "unread"
  +
notmuch tag +inbox +unread -new -- tag:new
  +
# tag all messages from "me" as sent and remove tags inbox and unread
  +
notmuch tag -new -inbox +sent -- from:me@example.org or from:me@myself.com
  +
# tag newsletters, but dont show them in inbox
  +
notmuch tag +newsletters +unread -new -- from:newsletter@example.org or subject:'newsletter*'
  +
}}
  +
  +
シェルスクリプトに実行可能属性を付与して実行:
  +
$ chmod +x ~/.scripts/notmuch-hook.sh
  +
$ ~/.scripts/notmuch-hook.sh
  +
  +
notmuch が新しいメッセージに 'new' とタグを付けるようになっていることを確認:
  +
{{hc|~/.notmuch-config|2=
  +
[new]
  +
tags=new
  +
}}
  +
  +
最後に、新しいメールが来たときにフックスクリプトを実行するようにしてください。{{Pkg|offlineimap}} を使って IMAP をローカルのメールディレクトリに同期している場合、以下の同期フックを作成:
  +
{{hc|~/.offlineimaprc|2=
  +
[Account myaccount]
  +
postsynchook = ~/.scripts/notmuch-hook.sh
  +
}}
  +
  +
便利なキーバインド:
  +
{{hc|~/.muttrc|2=
  +
macro index A "<modify-labels>+archive -unread -inbox\\n" "Archive message"
  +
macro index c "<change-vfolder>?" "Change to vfolder overview"
  +
macro index \\\\ "<vfolder-from-query>" "Search mailbox"
  +
}}

2019年1月27日 (日) 03:32時点における最新版

関連記事

Notmuch はメールインデックス作成プログラムです。原則、xapian 上で動作するフロントエンドであり、Sup と同じように、一つのことに焦点を置いています: メールメッセージのインデックスを作成すること。Notmuch はメールリーダーとして使うことも、mutt などの他の MUA のインデクサや検索ツールとして使うこともできます。

概要

Notmuch は C で書かれており sup-mail より数倍高速に動作します。Notmuch はインデックスの作成中に終了することもでき、次の起動時に続きからインデックス作成を続行します。sup-mail と同じように、不要なメールメッセージを永久に削除する手段は用意していません。メールの取得や送信、メールアドレスの保存などは行わないため OfflineIMAP, msmtp, abook などのプログラムを使う必要があります。

Notmuch は notmuch パッケージでインストールできます。

公式パッケージでは python, vim, emacs バインディングを提供します。

初期設定

インストール後、以下を実行することでインタラクティブなセットアップを起動できます:

$ notmuch setup

プログラムはメールディレクトリの場所、そしてプライマリメールアドレス・セカンダリメールアドレスを尋ねます。設定ファイルを直接編集することもできます。設定ファイルはデフォルトでは $HOME/.notmuch-config に作成されます。

設定後、以下のコマンドでメールディレクトリの再インデックスを行います:

$ notmuch new

フロントエンド

notmuch を使用する様々な方法が存在し [1]、cli あるいは Unix エディタが使えます。

Emacs

notmuch のデフォルトフロントエンドは Emacs です。notmuch を開発したのと同じ人によって開発されています。

Vim

vim インターフェイスは notmuch-vim に含まれています。起動するには:

$ vim -c NotMuch

alot

alot は notmuch のスタンドアロンな CLI インターフェイスで、python で書かれています。AURalotalot-gitAUR でインストールできます。

Alot は mailcap を使用して様々な種類のファイルを処理します。html メールも含まれているため、html メールを表示するには ~/.mailcap ファイルの設定が必要です。~/.mailcap に以下の行を記述してください:

text/html; w3m -dump -o -document_charset=%{charset} %s; nametemplate=%s.html; copiousoutput

上記では w3m を使用していますが、他のテキストベースクライアント (linkslynx) も使えます。ただし引数は違うかもしれません。

もちろん他のファイルハンドラを設定することも可能です。

bower

bowerMercury によって書かれた、もうひとつの CLI インターフェイスです。bower-mailAUR パッケージでインストールすることができます。

Neomutt

Neomutt は多数のパッチが適用された mutt のフォークです。Notmuch の統合パッチも含まれています。neomutt または neomutt-gitAUR パッケージでインストールできます。

astroid

Astroid は C++ と GTK+ で書かれたグラフィカルな MUA で notmuch のインターフェイスです。astroidAUR (安定版) または astroid-gitAUR (開発版) パッケージでインストールできます。高速な GUI を備えており、HTML や添付ファイルをプレビューしたり、キーボードで操作することができます。設定項目が多く、お好きなエディタを使うことが可能です。詳しくは wikiREADME を参照してください。

ner

ノート: Ner は開発が活発には行われなくなっています。GitHub の最後のコミットは2012年5月です。

ner - notmuch email reader - はまた別の CLI インターフェイスで、C++ によって書かれています。

ner-gitAUR[リンク切れ: アーカイブ: aur-mirror]AUR からインストールできます。

mutt の統合

mutt を MUA として使う場合、notmuch はメールのインデックス作成・検索を行う補完ツールとして役に立ちます。notmuch-mutt パッケージに mutt と notmuch を統合するスクリプトが含まれています。

notmuch-mutt パッケージをインストールして notmuch を設定したら、mutt から notmuch-mutt スクリプトを呼び出すキーバインドを追加してください。.muttrc に以下のコードを追加することを推奨します:

macro index <F8> \
"<enter-command>set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key<enter>\
<shell-escape>notmuch-mutt -r --prompt search<enter>\
<change-folder-readonly>`echo ${XDG_CACHE_HOME:-$HOME/.cache}/notmuch/mutt/results`<enter>\
<enter-command>set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key<enter>" \
"notmuch: search mail"

macro index <F9> \
"<enter-command>set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key<enter>\
<pipe-message>notmuch-mutt -r thread<enter>\
<change-folder-readonly>`echo ${XDG_CACHE_HOME:-$HOME/.cache}/notmuch/mutt/results`<enter>\
<enter-command>set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key<enter>" \
"notmuch: reconstruct thread"

macro index <F6> \
"<enter-command>set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key<enter>\
<pipe-message>notmuch-mutt tag -- -inbox<enter>\
<enter-command>set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key<enter>" \
"notmuch: remove message from inbox"

上記のコードでは F8 で notmuch を使って受信ボックスを検索し、F9 で検索結果からスレッドを作成し、F6 で検索結果にタグを付けます。

notmuch-mutt の問題

cpan/cpanm でインストールされた perl モジュールと pacman でインストールした perl モジュールが一致しないために、以下のようなエラーが表示されることがあります:

Gnu.c: loadable library and perl binaries are mismatched (got handshake key 0xdb00080, needed 0xdb80080)

notmuch-mutt の依存パッケージを cpan か pacman どちらかでインストールするようにしてください。

NeoMutt の統合

neomutt を使用する場合、notmuch-mutt パッケージは必要ありません。かわりに、~/.mailboxes を作成して基本的な (仮想) メールボックスを記述してください:

~/.mailboxes
virtual-mailboxes "inbox" "notmuch://?query=tag:inbox"
virtual-mailboxes "archive" "notmuch://?query=tag:archive"
virtual-mailboxes "sent" "notmuch://?query=tag:sent"
virtual-mailboxes "newsletters" "notmuch://?query=tag:newsletters"

そして、仮想スプールファイルを有効化して mutt から仮想メールボックスを使えるようにしてください:

~/.muttrc
set virtual_spoolfile=yes
set folder=notmuch-root-folder
source ~/.mailboxes

この段階ではメールはまだタグ付けされていないため、mutt でメールボックスを見ても空のままです。仮想メールボックスを使うために、メールディレクトリのメールにタグを付ける必要があります。以下のようにシェルスクリプトを作成すると簡単です:

~/.scripts/notmuch-hook.sh
#!/bin/sh
notmuch new
# retag all "new" messages "inbox" and "unread"
notmuch tag +inbox +unread -new -- tag:new
# tag all messages from "me" as sent and remove tags inbox and unread
notmuch tag -new -inbox +sent -- from:me@example.org or from:me@myself.com
# tag newsletters, but dont show them in inbox
notmuch tag +newsletters +unread -new -- from:newsletter@example.org or subject:'newsletter*'

シェルスクリプトに実行可能属性を付与して実行:

$ chmod +x ~/.scripts/notmuch-hook.sh
$ ~/.scripts/notmuch-hook.sh

notmuch が新しいメッセージに 'new' とタグを付けるようになっていることを確認:

~/.notmuch-config
[new]
tags=new

最後に、新しいメールが来たときにフックスクリプトを実行するようにしてください。offlineimap を使って IMAP をローカルのメールディレクトリに同期している場合、以下の同期フックを作成:

~/.offlineimaprc
[Account myaccount]
postsynchook = ~/.scripts/notmuch-hook.sh

便利なキーバインド:

~/.muttrc
macro index A "<modify-labels>+archive -unread -inbox\\n" "Archive message"
macro index c "<change-vfolder>?" "Change to vfolder overview"
macro index \\\\ "<vfolder-from-query>" "Search mailbox"