外出先から電子メールを読む時の無駄を無くすには渡辺健次

理工学部知能情報システム学科

watanabe@is.saga-u.ac.jp

1 はじめに費していると思えます。取り込んだ メールの From: がMAILER-DAEMON だったりすると 、折角通話料を払った

筆者が本学理工学部物理学科の大学院生の頃、九大大 のに 、と悲しくなってし まいます。出張先でモバイルし型計算機センターで BITNET の運用がはじ まりました。 ている時は 、必要なメールだけを取り込むようにし たい
カナ漢字変換を使って作成して端末から送信した「手紙」 ものです。
が 、非常に短い時間で相手に届けられる電子メールは 、そのような問題意識を持ちながら、いろいろ試行錯誤
字が 下手で漢字を知らないが 故に筆不精だった筆者に しているわけです。そこで筆者は、メールサーバ側でメーとって、魔法の道具のように思えたことを今でも憶えて ルを仕分けておいて、モバイル先では必要があるメールいます。もちろん 、あっと言う間に魅力に取りつかれたのは、書くまでもありません 。

だけが取り込めるようにしています。具体的には 、図 1に示すように、通常のメールボックス (アカウント 1) とその後、UUCP な時代を経て、いわゆるインターネッ は別に 、POP で取り込むための専用のメールボックス
トの電子メールを 使いはじ めると、筆者にとって電子 (アカウント 2) を用意していて、届いたメールから「 読メールは無くてはならないツールとなりました。しかしむ必要のあるメール」のみをそちらに自動的にコピ ーしそうなると「いつでも・ど こでも」メールを読む必要にています。出張先ではアカウント 2 を POP すること迫られることになります。特にここ数年はとても出張がで、「 読む必要のあるメール」のみを読むことができる多いので 、出張先から メールを読まなければ 、公私ともわけです。に困ったことになります。そのため、最近は常にパソコ

本稿では、筆者が行っている「 メールサーバ側でメーンを携帯していて、出先でメールを読み書きしています。 ルを仕分ける」方法について、解説し ます。
いわゆるモバイルをし ているわけです。

なお、筆者の場合、情報処理センターのメールサーバ
ところが 、電子メール中心の生活になるにつれて、毎 は使っておらず、自前で PC UNIX を使ってメールサー日大量に届けられ るメールを如何に効率良く処理する バを立てています。本稿で解説する内容は 、自前のメーか 、とい う課題に取り組む必要がでてきまし た。例え

ルサーバでの設定であり、これがそのまま情報処理セン必ずしも良いわけではありません。要するに読む優先度ください。もし 筆者の方法に興味を持たれた場合は、情が低いわけで 、急いで読む必要はありません。出張から報処理センターでも使えるように陳情してください。

ば 、メーリングリストは重要な情報源ですが 、S/N 比がターで使えるわけでは (たぶん ) ないことに 、注意して帰ってから 、時間がある時に処理すれば良いわけです。
最近のメールクライアントでは 、適当なルールに従って、受信したメールを仕分ける機能を持っているものがあります。
「 すぐ 読まなくても差し 支えないメール 」を適当なフォルダに自動的に仕分けるルールを記述することで 、重要なメールだけを自動的にピックアップして読むことができます。
ところがこの方法は 、メールを POP でパソコンに取り込んだ後で仕分けるので、結局メールサーバに届いている全てのメールを POP で取り込むわけです。
「すぐ 読まなくても差し 支えない メール 」までも外出先から POP で取り込むのは 、時間と通信料金を無駄に消2

何をもって「読みたいメール」と判断するのか
既に述べたように、移動先でも「読みたいメール」と、「 すぐ 読まなくても差し 支えない メール 」をメールサーバ側で区別して、アカウント 2 のメールボックスに「読みたいメール 」のみをコピーしています。ここでまず考えなければいけないのは 、「 読みたいメール」と「 すぐ読まなくても差し支えないメール」とは何か 、ということです。

 受信したメールを自動的に転送する機能
 メーリングリストを運営する機能
 受信したメールに応じて適当なプログラムを起動する機能

procmail は anonymous ftp で入手することができま

すが 、FreeBSD の packages にも含まれていますので 、それをインストールするのが便利でし ょう。ちなみに 、FreeBSD 3.4-RELEASE の packages には 、procmail3.13.1.tgz が含まれています。packages のインストール

は 、次のようにして行います。
# pkg add procmail-3.13.1.tgz <

図 1: 処理の流れ筆者にとって、どのようなメールが「読みたいメール」であるかを考えると、次のようになります。

 To: が自分宛のメール
 Cc: が自分宛のメール
 重要なメーリングリスト
つまり、これらの条件にマッチするメールを、適当なツールを利用して、2 つ目のメールボックス (アカウン

ト 2) にコピ ーすればよいことになります。

ここで 、「 読みたいメール」を定義しているこの方法は、ホワイトリスト方式であると言えます。もちろん、反対に「 すぐ 読まなくても差し支えないメール 」メールを定義するブラックリスト方式も採ることもできますので、ど ちらが簡単なのかを考えてみるのも良いでしょう。

3 procmail の導入
筆者はサーバ側で メールを振り分けるために 、proc-mail というツールを利用しています。procmail はオランダの S.R. van den Berg 氏が開発されているツールで、インターネットでフリーで配付されています。

procmail は 、「 メールのヘッダの情報に基づいて、アクションを起こす」ことができます。procmail は次の機能を持っています。

 受信したメールを仕分ける機能

4 ルールの記述
前章で述べたように、procmail はメールのヘッダの情報に基づいてアクションを起こすプログラムです。ど のヘッダ情報に基づいてど うアクションを起こすか 、というルールは、ホームディレ クトリに置く .procmailrcというファ イルに記述し ます。.procmailrc については 、オンラインマニュアルに 詳しい説明 (ただし 英語)があります。

ここでは 、アカウント 1 が watanabe 、アカウント 2が wata2 という例で解説し ます。図 1 の処理を行うために 、図 2 に示すルールを記述し まし た。procmail のルールは :0 の行から定義が始まります。このルールでは 、3 つのルールを記述しています。

1. ヘッダの To: が watanabe@*.saga-u.ac.jp になっているメールにマッチし 、メールのコピーを wata2というアカウントに転送し 、さらに通常のメールボッ
クス (.procmailrc では $ORGMAIL がそれを意味し ます) に書き込む。

2. ヘッダの Cc: が watanabe@*.saga-u.ac.jp になっているメールにマッチし 、メールのコピーを wata2というアカウントに転送し 、さらに通常のメールボッ
クス ($ORGMAIL) に書き込む。

3. ヘッダの Reply-To: が xxx@is.saga-u.ac.jp になっている メールに マッチし 、メールのコピ ーを
wata2 というアカウントに転送し 、さらに通常のメールボックス ($ORGMAIL) に書き込む。

ヘッダを検索する条件は、正規表現で表現します。この正規表現は、UNIX の egrep コマンド と同じなので 、詳し くは egrep のマニュアルを参照してください。

"|IFS=' ' && p=/usr/local/bin/procmail && test -f $p && exec $p -Yf- || exit 75 #USERNAME"

図 3: .forward の設定
それぞれの条件に付いて、詳し く解説し ます。

(1) の条件では、「 行頭が To: で始まっている行で 、その行に watanabe@*.saga-u.ac.jp という文字列が含まれている」という条件を満たすヘッダを持つメールがマッチし ます。なお 、「 watanabe@*.saga-u.ac.jp」の * はワイルド カード であり、任意の文字列とマッチ:0* ^To:.*watanabe@.*\.saga-u\.ac\.jp.*{

し ます。ワイルド カード を使っているのは個人的な事情で、* の部分に cc 、is など 、何種類かあることに対応するためです。(2) は対象のフィールド が Cc: になって

:0c! wata2

いるだけで 、同じ 意味になっています。
一方 (3) の条件では 、ヘッダ 中の Reply-To: ヘッ
ダ を調べて 、xxx@is.saga-u.ac.jp とい うアド レ ス:0$ORGMAIL}があればマッチし ます。多くのメーリングリストでは、(

Reply-To: ヘッダに返事を書くアドレス メーリングリ

ストのアド レスであることが多い) が指定されているので、それを利用しています。

:0* ^Cc:.*watanabe@.*\.saga-u\.ac\.jp.*{

これらの 3 つの条件にマッチしないメールは、通常のメールの処理に従い、メールボックス (すなわちアカウント 1 のメールボックス) に書き込まれます。この「 条:0c! wata2件にマッチしないメール 」が「 すぐ 読まなくても差し 支えないメール 」になります。

:0$ORGMAIL}

5.forward の設定作成したルールに従って、届いたメールを自動的に処:0* ^Reply-To:.*xxx@is\.saga-u\.ac\.jp.*

理するためには、ホームディレ クトリに .forward ファ
イルを作成し 、そこで procmail を起動するように設定し ます。.forward の例を、図 3 に示し ます。

{:0c! wata2

この設定を施した後、届いたメールが procmail によって自動的に処理されるようになります。
携帯パソコンのメールツールで 、メールサーバのアカ:0$ORGMAIL}

ウントをアカウント 2 に設定することで 、仕分けられたメールのみを POP で取り込めるようになります。筆者はノート PC では Becky! を使っていますが 、Becky!

図 2: 記述したルール

での設定例を図 4 に示し ます。

6

問題点
筆者は 2 年ほど 前から procmail を導入し て 、本稿で紹介した方法で メールサーバ側で メールを仕分けて、外出先では必要なメールだけを取り込むようにしていま7

おわりに電子メールを使い始めたころ、嬉しくなって「 メールでいつでも連絡をください」と言いまわっていました。
ところが段々メールの量が増えてきて、毎日何百通と送られてくるようになると、読むだけでも大変です。出張から帰って、数日分で千通に迫ろうかという量のメールに目を通すだけで 、一日が暮れてし まいます。
携帯パソコンを使ったモバイルは 、外出先で日常と同じようにメールが利用できるので、とても便利です。筆者の場合、本稿で紹介した設定を施すことで 、今の所は効率の良いモバイル環境を実現しています。必要なメールだけだと、案外少ないものですね。
図 4: Becky! の設定

ところが最近は、新たな問題意識を持っています。それは「 PC を持ち歩かずに メールを読むにはど うすれば良いか 」というものです。
皆さんはど のよ うな環境があると良いとお思いでしす。これは想像以上に効果的でり、単に不要なメールを ょう ?
取り込まなくなっただけでなく、メールのフィルターとしても重宝しています。
しかし ながら 、いくつか問題点もあります。
まず、外出先で既に読んだ メールを、オフィスで再び読む手間がかかる問題があります。なぜならば 、アカウ

ント 2 に転送されるメールは「 コピ ー」であり、オリジナルのメールがアカウント 1 に届いているからです。
要は手間の問題ですが 、筆者は「 受け取ったメールはオフィスのコンピュータに整理保存する」ことにしていますので 、2 度読む手間もやむ無し 、と割り切っています。

その代り、携帯 PC に取り込んだ メールは、必要が無くなれば消去しています。
また、出張していない日もメールは自動的にコピーされるため、適当な頻度でアカウント 2 に溜ったメールを吸い上げる必要があります。これをしておかないと、次の出張先で、大量のメールを取り込むはめになり、悲しい思いをし ます。筆者の場合は 、自宅のパソコンに吸い上げて、即座に消去しています。
さらに、頻度は少ないものの、.procmailrc の保守もそれなりに面倒さはあります。筆者の場合、二度の転勤、一度の配置変えの結果、これまでいくつものメールアド レスを使ってきました。そのため、いろいろなメールアドレス宛に メールが送られてくるので、結局全てのアド レスについて、ルールを書いています。また、新たに「重要なメーリングリスト」が加わった場合、そのメーリングリスト用のルールを追加しなくてはいけません 。