インデックス
Haiku のメールシステム
カスタムステータスを使う
クエリを使う
追加の小技

ワークショップ: メールの管理

このワークショップでは、Haiku 環境下で電子メールを管理する方法について調べます。電子メールサービスがメールプレファレンスで正しく設定されており、読者がメールアプリケーションの基本的な特徴を理解していることを仮定しています。

index Haiku のメールシステム

読者がほかのオペレーティングシステムから Haiku へやってきたとしたら、おそらく、MS Outlook や Mozilla の Thunderbird のような大きなアプリケーションを使っていたでしょう。それらはメールサーバーのアドレスなどの、すべての情報を入力する必要があり、また、それらは独自のコンタクトデータベースを使用しています。それらはメールの送信や受信を管理し、いくつかの特別なファイルに保管します。
電子メールクライアントを変更することは、いくつかのエクスポート / インポート、および変換が進行する面倒なことになることがあります。ほかになにか使えるものを調べるために、同時に一つ以上のクライアントを使うことも、たまに問題が起こります。

Haiku のメールシステムはそれらとは異なったものです。それは、より小さな別々のモジュールに分かれています。

メールサーバーとの通信を管理する、mail_daemon があります。メールプレファレンスは、メールをチェックする頻度を設定する中心の一つであり、たとえば、メールアカウントや、メールをチェックする頻度を設定します。

受信または送信されたすべてのメールは、ひとつの電子メールファイルとして保存されます。ファイルには、BFS 属性中に、ヘッダ情報 (差出人 (sender)、表題 (subject)、日付 (date) のような)、およびステータス (新規 (New)、受信済 (Replied)、送信済 (Sent) のような) を持っています。このことにより、Haiku のすばやいクエリで、メールを検索 / フィルタリングできます。

browsing.png

電子メールはすべて別々のファイルなので、それらを閲覧することは,フォルダー内の、(またはクエリの結果の) 画像ファイルを ShowImage でブラウズするのと同じぐらい容易なことです。Tracker ウィンドウを開いたままにしておくと、移動のために、前へ / 次へボタンを使うたびに、現在見ているファイルの選択が移動するのが見えるでしょう。
それらは別々のファイルなので、Haiku の メール以外のビューアを使ってもまったく問題ありません。

同様に、新規メッセージの作成は、メール送信を管理する mail_daemon によって扱われるありふれたファイルの作成となります。コンタクト情報は、People アプリケーションに従います。

一言で言えば、ほかのメールクライアントが、メールサーバーとの通信からすべてのメールへのビュー、およびそれらを検索およびフィルタリングするためのツールの提供に至るまで、あらゆることができる場所です。Haiku は一連の小さなツールと、一般的なファイル管理を使います。

特に、Tracker およびクエリを使って電子メールを管理することは強力なアイデアです。得られる経験は、ファイル操作のあらゆる問題に転換できます。それが、画像、音楽、ビデオ、コンタクト、またはどんな書類でも、Tracker の使用は、ファイル管理のコアとなります。
同様に、これらのシステムエリアの改良は、電子メールだけでなく、それらを利用するすべてのアプリケーションに役立ちます。

index カスタムステータスを使う

新着の電子メールをブラウズする場合、さらに詳しくそれに関して考えるように、後でそれらのうちのいくつかに戻りたいと思うかもしれません。それらを "New messages" クエリ中に維持するために、メールのメニュー閉じる (Close and) | 「新着」のままにする (Leave as New) を使用できましたが、その方法を積み重ねる傾向があります…

ひとつの解決法は、もちろん、単に返答を始めて、下書きとして保存することです。しかし、読者が返事を書くつもりがなく、後でメールを再度ただ読みたいだけならば、それは理想的ではありません。

status.png

さらに良い、閉じる (Close and) | ほかの属性に変更… (Set to...) の使用は、新しいステータスを作成し、メールを分類するためにそれを使用するためです。たとえば、ステータスを、"後で (Later)" と呼ぶことができ、それから、より多くの時間が取れたときに、そのためにクエリを実行することができました。
あるいは、特定のプロジェクトのために、別のステータスを使用します。たとえば、ステータス "HUG" ("Haiku ユーザーガイド" 用) を作成し、そこに、ユーザーガイドのコンテンツに影響をおよぼすかもしれないすべてのメールを集めます。それらは、いくつかの機能を変更または導入する、コードの変更に関するコミットメッセージのようなメール、または、ユーザーガイドを改善すると感じるあらゆるメールです。
どんな場合でも、ステータス名を短くするように努めてください。その方が、常にTracker 中で通常の幅の "Status" 列に適合します。

そのステータスをセットするために、メールアプリケーションで電子メールを開く必要はありません。Tracker アドオン、Mark as Read および Mark as... で、いくつかの電子メールファイルを選択し、一度にそれらのステータスをセットできます。

index クエリを使う

確かに、電子メールをすべて格納するためにフォルダーを指定します、しかもそれを開けることができます。そこに読者のメールのすべてがあります。しかし、時間とともに、フォルダーは込み入ってきます。そして、すべてを表示することは何千ものファイルのようにますます長くかかり、それらの属性を解析し、ソートしなければなりません。同様に、たいていの場合、2 年前のナイジェリアの王子およびそれらの相続問題の電子メールに実際に関心がありません…

フォルダーを読み込むとき、多くの時間が、ディスクから読み込まれたファイルを正しい並び順にし、それらをウィンドウ中に表示することに費やされます。非常に多くのファイルがあるフォルダーを開く必要があるならば、Tracker ウィンドウを、"不可視 (invisible)" にすることで待ち時間を短くできます、つまり、ウィンドウを最小化するか、あるいは別のワークスペースへ変更するかのいずれかです。それがどのように CPU 使用率に影響するか確かめるためには、プロセスコントローラーを観察してください。

クエリ、救出!

クエリを使うことで、メールの表示を限定できます。実際、Deskbar 中のメールボックスアイコンはクエリを使っています。

daemon-in-deskbar.png

下書きを開く (Open Draft) サブメニューは、ステータス "Draft (下書き)" に対するクエリを行います。このステータスは、メッセージを保存したときに、メールによって、ユーザーがメッセージを保存したときにセットされます。

Open Inbox Folder および Open Mail Folder は、単に普通のフォルダーへのリンクです (私見ではあまり便利ではありません)。

# 通の新着メッセージがあります (# new messages) サブメニューは、ステータス "New (新着)" に対するクエリによって現れます (ところで、同じクエリがメールボックスにメールがあることを示すため、メールボックスアイコンを変更するのに使われます)。

独自のクエリ (または、フォルダー、アプリケーション、スクリプトなど) をそのコンテキストメニューに追加できます。それら、またはそれらへのリンクを、~/config/settings/Mail/Menu Links に入れてください。

クエリ、~/config/settings/Mail/mailbox は特例です。それは、Deskbar 内のメールボックスアイコンを左クリックしたときに実行されます。その振る舞いを変えたいなら、それをほかのどんなファイル (またはファイルへのリンク) にでも置き換えることができます。それには、単にファイル名を "mailbox" とするだけです。それはクエリである必要はありません。クエリのフォルダーへのリンク、スクリプト、またはアプリケーションでも同様に動作します。

index クエリのサンプル

便利なクエリの少しの例を以下に示します。

query-1.png
これは、カスタムステータス "Later" を持つメールをすべて検索します。
query-2.png
これは、過去 2 日間のメールをすべて検索します。
query-3.png
これは、過去 2 週間に Ingo Weinhold から来たメールをすべて検索します。
query-4.png
これは、過去 12 時間に、Haiku commit list に投稿されたものをすべて検索します。

index 追加の小技