IMAP4 home

Introduction

経済学部のメールサーバは、電子メールをパソコンに取得するプロトコルとして、 APOPのほか、IMAP(Internet Mail Accesss Protocol)もサポートしています。 IMAPの目的は、メールを読み書きするパソコンなどが何台あっても同じメールを 参照することができる、という機能の実現です。 IMAPを使うと(理論的に)以下のようなことができます。(設定は必要)

  • どこにいても同じメールを読める。
    基本的に着信したメールはすべてサーバ内におきっぱなしにし、 メールを読み書きするための端末(パソコン、携帯電話など)は、 サーバの中のメールをみるためのビュワーとして機能する。
  • どのメールを読んだか、返信したかどうかのステータスもどこにいても 同じに表示される。
    メールの既読/未読はサーバ側で保持するので、読み出す端末が どれであっても同じステータス
  • 書きかけのメールも、どこにいても続きが書ける。
    作成中のメールもサーバ側に置ける
  • メールの自動振り分けがパソコンのメーラを介さず実行できる。
  • 特定のメールボックスを他人と共有する機能がある。
  • パソコン側にはメールの実体を持つ必要がないので、パソコンが壊れてもメールを失わない。
  • 長期間にわたるメールをすべて保存しておける。
  • ログインのときの認証が安全
  • すべての通信が暗号化(SSL)可能
  • Webメーラにも対応可能
    Webメーラってのは、yahoo.co.jpやgoo.ne.jpなどでも提供されている電子メールサービス。Webブラウザからサイトにログインすると、自分のメール箱を使えるようになる。出先でメールを読み書きするのに便利。ただし、容量には制限があることが多い。経済学部のアカウントは、現在のところ、容量制限は課していません。世界中どこにいても、Webブラウザさえ使えれば、自分のメール箱がすべて参照でき、読み書きできます。
    このメリットは学生にも有効です。学生が使っている総合情報処理センターのアカウントは、(学部学生に対しては)50MBの容量しかありません。 (学部学生に対しては、特別に容量を増やす手続きはありません。)メールで授業の課題を添付書類として送ったりすると、あっというまに使い切ります。IMAPをつかうと、添付書類を受信することはできるし、添付書類がパソコンの中に残らずに済むので、遠慮なくファイルが送れる。
  • LDAP(Light weight Directory Access Protocol)を使うと、アドレス帳も、 どこにいても同じものが使える。
  • 携帯電話でもメールを読み出せる
    IMAPは、メール本体はメールサーバにおいておくので、 携帯電話などの小さな機器でもすべてのメールが読み出せる。

ほかにも特徴はあまたありますが、比較的単純なAPOPと違い、IMAPは非常に多機能であるため、メカニズムの理解が必要です。そのためIMAPの設定について 議論するML
yigarash-email@econ.fukuoka-u.ac.jp
を作成しました。IMAPについて興味のある方はご参加ください。 参加は、まず
yigarash-email-subscribe@econ.fukuoka-u.ac.jp
に(中身なしの)メールをなげます。折り返し、登録を確認するメールが返信 されるので、そのメールに返信をすると登録が完了します。

基本的な発想

IMAPは、電子メールをモバイル端末などで読むことをにらんで、「どんな環境でも同じメールが読める」ことを目標に設計されました。
基本的な発想は「メールの本体はサーバに全部置いておく」とし、パソコンのメーラ(以下MUA:Mail User Agent)は、サーバにおいたメールの「ビュワー」として機能する、という仕組みです。ユーザが読みたいとおもったメールの題名が指定されてから、テキストをその都度とりよせて表示します。
いわば、World Wide Webのブラウザがコンテンツを表示するのとイメージは似ています。クリックしてから表示がはじまるわけです。これにより、基本的にはパソコン側にはメールの本体は持つ必要がない、また、どのマシンでも同じメールが読める、というメリットが達成されます。
ただし、この方法は、読みたいとおもってからメールをひっぱってくるため、表示されるまでに時間がかかります。このためIMAPでは (やはりWebと同じように)パソコン側に「キャッシュ」を持ったり、サーバと接続している間に常にバックグラウンドでコンテンツを読み込むなど、高速化のための手練手管を駆使しています。
(これもwebブラウザとよく似ている) 低速なダイアルアップ接続などをしているときには、この高速化の工夫は特に重要ですが、回線スピードによってどんな方法を使うのかは違うため、ある程度の理解が必要なわけです。理解していないと、メリットがデメリットに転化することだってありえます。
また、POPとは通信の発想が全然違うため、サーバとつながっていないオフラインのときの動作はどうなるのか?POPとの共存はできるのか?添付書類の扱いはどうなる?など、それなりに確認が必要です。

どんなメーラが対応しているか? Requirements

IMAPは最近のメールプログラムの多くがサポートしていますが、メールをすべて サーバに置く容量はそれなりに大きくなるため、大学全体のメールサーバも一般的なプロバイダもIMAPの機能は提供していないのが普通です。しかし、経済学部のサーバは容量に関しては制約をかけない方針であるので、それなりの贅沢を実現します。

※未対応のメーラ確認中

何をすればいいのか?

経済学部における設定の仕方は、古野本氏作成のマニュアル
@cis.fukuoka-u.ac.jpのパソコンの、Netscape Messangerから利用する手順は、Netscape Messengerからの利用方法

これまでのメール箱を引越しする手順

これまでPOPを使ってきて、IMAPに移行する際には、「これまでPOPで取得したメール・メール箱をどうしたらいいのか?」という課題があります。POPで、メールを自動分類していて、メールボックスがすでにたくさんある場合です。なるべくその分類体系をIMAPに引っ越ししたいなら、次のような手順になります。

  1. これまでのPOPのメール取得アカウントにくわえて、IMAPでメールを取得するアカウントを作成する。(方法は古野本氏のページ)POPのアカウントは上書きしたり、消してはいけない。
  2. IMAPのアカウントで、メールサーバに接続する。すると、これまでのPOPのメールボックスに加えて、IMAPの「受信箱」(←MUAによって表現が違う。INBOXだったり、「受信」だったり)ほか(「送信」「送信済み」「下書き」)が出現する。
  3. POPで作成していたメールボックスは、MUAのあるパソコンの中にある。(以降、これをローカル・メールボックスと呼ぶことにします) これをIMAPで管理されるメールボックス(IMAP メールボックスと呼びます)に引っ越すわけだが、まず、IMAPメールボックスを作成する。IMAPの「受信箱」をひらく。そして、MUAのメニューなどから、新規のメールボックスを作成する項目を選ぶ。(MacOSのMail.appなら、メールボックス:新規..)ローカルメールボックスと同じ名前(でなくていいが)にする。
  4. ローカルメールボックスをあけて、そのなかのメールをIMAPメールボックスに移動する。たいていのMUAなら、「メールを全部選択」し、そのままドラッグ&ドロップで、IMAPメールボックスにもっていけば、移動(もしくはコピー)が始まるはずです。ただし、この操作は時間がかかります。パソコン側からIMAPサーバにむかってメールのデータが送信されるからです。量にも寄りますが、LAN環境でやっても、数時間はかかります。一回はやらねばならないことではありますが。この操作を、メール箱の数だけくりかえします。
  5. つぎに、これまでPOPでやっていた「自動振り分け」の設定を変更する。着信したメールのヘッダをみて、どのメールボックスに移動するかの 設定です。POPと同じ移動のルールを、IMAPのメールボックスに対しても作成する方法が、「これまでどおり」という意味ではわかりやすい。当面はこれでもいい、とおもいます。しかしこの方法は、IMAPらしくない。IMAPはどんな環境でも、おんなじ状況でメールが読み書きできることがメリット。パソコンの中にメールを分類する方法をローカルにしこんでしまったら、ほかのパソコンで(やはりIMAPをつかって)メールを読む際に、分類がされない、とか、どのパソコンでメールを読んだかで分類のされかたが違ってきます。まあ、自分がつかうすべてのパソコンで同じルールを同じに仕込む、力任せな方法ももちろんあります。(が、五十嵐はあきらめました)力任せな方法でも当面はしのげます。楽をする方法は「分類はサーバでやってしまう」という戦略です。なにしろサーバで分類されているなら、パソコンはその分類結果をみるだけ。個々のパソコンにはルールを しこむ必要がなくなる、というやりかたです。これは「サーバでの操作」が必要になるので別に説明をします。とりあえずは、ルールをしこむ手間は放置して、手動で分類をしてしのいでください。
  6. Optionalな設定ですが、アドレス帳の移行をする作業。IMAPのメリットは、どのパソコンから操作しても同じ環境になること。したがって、アドレス帳もサーバで管理すると、理想が実現します。具体的には、パソコンのなかのMUAで管理していたアドレスのデータをLDAP(Lightweight Directory Access Protocol)のサーバで管理します。IMAPなMUAには、LDAPのクライアント機能があり、LDAPサーバにアドレスを聞きに行くようにします。ただ、この方法は五十嵐もまだやっていないので、解説はのちほど。

次は、5)の方法を別に述べます。

自動分類の方法

On 2004/02/08, at 9:20, IGARASHI Yasufumi wrote:

5)つぎに、これまでPOPでやっていた「自動振り分け」の設定を変更する。
 着信したメールのヘッダをみて、どのメールボックスに移動するかの
 設定です。

    :

 力任せな方法でも当面はしのげます。楽をする方法は「分類はサーバで
 やってしまう」という戦略です。なにしろサーバで分類されているなら、
 パソコンはその分類結果をみるだけ。個々のパソコンにはルールを
 しこむ必要がなくなる、というやりかたです。これは「サーバでの操作」
 が必要になるので別に説明をします。

自動分類の方法は、いくつかやり方があります。
手軽かつ面倒なほうほうから、便利かつ手間の少ない方法(ただしUnix) の順に列挙します。

  • パソコンのMUAで自動分類
    あんまり説明の必要なし。これだとメール読み出しにつかっているパソコン の自動分類のルールをそろえるか、そろえるのをあきらめてばらけるのを 容認することになります。(五十嵐はストレスがたまってやめました。) 特に複数のOS,MUAを使っているときには、不便この上ない。
  • メールボックスに直接配送
    IMAPは、ひとりのユーザがサーバ上に複数のメールボックスをもつことが できます。一方、経済学部のメールサーバが採用しているqmailは、ひとり がいくらでもメールアドレスをもつことができます。これを使って、メールボックス専用メールアドレスをつくってしまい、 「分類する」のではなく、最初から特定のメールボックスに配送させる方法。 分類に計算機パワーを使わないので、とても合理的。ただしUnixのコマンド を駆使する必要があります。五十嵐はもっぱらこれでやっています。 詳しくは
    yigarash-unix-get.162@econ.fukuoka-u.ac.jp
  • procmailを使う方法
    procmailは、Unixで動くメールの自動分類ツールです。着信したメールを ルールにしたがって、処理してくれる。たとえば自動振り分けなどができる。 パソコンでメールを読む場合は、すでにサーバ内で振り分けがされた結果を みればよいだけ。設定はファイルひとつにかけばよいので、Unixになじみが薄い人でも大丈夫 とおもいます。ユーザは多いので、インターネットに設定の方法はいくらでも ころがっています。qmailのことも視野に入れて書いているのは以下; http://vlsilab.ics.es.osaka-u.ac.jp/~k-ueda/unix/procmail.html この記事をもとに、経済学部でつかえるはずの最小限の設定をのべます。

1:.qmailにprocmailをつかう設定を加える。
ホームディレクトリにある.qmail(五十嵐なら/home/yigarash/.qmail)に下記の内容を加える。

| /var/qmail/bin/preline /usr/local/bin/procmail

これでProcmailをよびだすことになった。 2:procmailの最小限の設定
ホームディレクトリに以下を内容とするファイル(ファイル名は、/home/yigarash/.procmailrc)を作成する。

LOGFILE=$HOME/procmail.log
MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR
:0
*^Subject.*test
Maildir/.test/.

この.procmailrc は、(グループを含め)他人から書き込める 権限であってはならない。その場合、Suspicious procmailrc、という 警告がでて、procmailは動作をやめる。もしこれがでたら、

chmod 600 .procmailrc

を実行すべし。 最初の三行は、Procmailがつかう環境変数の設定。

  • 処理の動作を記録するログファイルのファイル名の指定
  • メールディレクトリのパス名
  • 3行目は、いかなる条件にも引っ掛からなかった場合の行き先
    そして、4行目以降が条件の記述です。「レシピ」と呼ばれます。 レシピは、「:0」で始まる行から、3行で構成されます。
    レシピの書式は、
:0[option]
* rule1
* rule2
..
action

「:0」の後ろの[option]は、レシピの動作の細かい指定、「*」で始まる行は、メールを より分けるためのrule(複数行可), 最後の行のactionはそれに対応するための「作業」 を記述します。

rule

  • *で始まる
  • あるパターンにマッチするかどうかを書きます。例では、    Subject行にtestが含まれていたら という意味
  • 行が複数ある場合は上から順にテストされる

action

  • action
  • ruleでマッチしたメールに対する処理内容。
  • 上記の例では、Maildir/.test/ というディレクトリ (パソコン側MUAではtestというフォルダにみえる)にメールを書き込む

基本的には以上を列挙してゆくだけ。
以上がprocmailを使う方法ですが、ruleの記述は非常に表現力がある らしいので、パソコンのMUAではできないような複雑な条件もかける ようです。くわしくは上記URLや http://www.klinikos.edu.saitama-u.ac.jp/~tairo/admin/env/Mail/procmaildoc.html などをごらんください。

経済学部のサーバの固有情報

経済学部メールサーバ mail.econ.fukuoka-u.ac.jpでは、以下の機能をサポートしています。 (2004/12現在)

  • password 認証
    Unixへのログインアカウント、パスワードで接続できます。 password認証は盗聴に無力なのでお勧めできません。
  • password 認証+SSL
    SSLを使って、認証および通信内容を暗号化します。推奨。
  • MD5 challenge responce認証(以下、MD5 CRAM)
    Challenge Response とは、パスワードを通信路にながさずに認証する手順です。原理は簡単
    1.ユーザは、サーバに自分のパスワードを登録しておく
    2.ユーザがサーバにログインしたいとき、サーバはさいころをふる。そのサイコロの目を、ユーザのパスワードで暗号化ユーザに送り付けて、複合せよ、と迫る。(これがChallenge)
    3.ユーザは自分のパスワードをMUAに入力し、1)で送られた文字列を複合。その結果をサーバに送る。
    4.サーバはさきほどのさいころの目と、2)の結果を照合し、一致したら、本人であると認める。
    公開鍵方式ほど複雑ではないけども、なにしろパスワードそのものは 流れないので安全。 See.
    MD5 Cramにする手順。以下は、ユーザの数だけ実行する必要

1:メールアカウントをDatabaseに登録

/usr/local/sbin/userdb yigarash set home=/home/yigarash mail=/home/yigarash/Maildir  uid=11250 gid=1125

これで

/usr/local/etc/userdb

に、(メールアカウント)yigarash のエントリができる。内容は1行を1レコードとする平文なフォーマット

yigarash	home=/home/yigarash|mail=/home/yigarash/ Maildir|uid=11250|gid=1125

メールアカウントとUnixアカウントは異なっていても構わない。

2:DATABASEにパスワードを登録

上記のデータベースにパスワードを加える。

/usr/local/sbin/userdbpw -hmac-md5

とすると、標準入力からパスワードを入力しろ、というプロンプトがでる。2回、パスワードを入力すると、それを暗号化した文字列を標準出力に出力する。

mail# userdbpw -hmac-md5
Password:
Reenter password:
43a4de3cbaee692ee21660c66513ff56f3fe0330537b05a275650e8d7c18b5d8

この出力を、データベースに加える。

/usr/local/sbin/userdbpw -hmac-md5 | /usr/local/sbin/userdb yigarash set hmac-md5pw

この結果、/usr/local/etc/userdbは、

yigarasi              home=/home/yigarash|uid=11250|hmac-       md5pw=60fd4f19041fd7145abe1dd521e030f5fbdafb986e509674617e994b88182f95|mail=/home/yigarash/Maildir|gid=1125

のようになる。

3:Berkeley DB形式に変換
Berkeley DBってのは、BSD系Unixで採用するようになったShadow Password 形式らしい。(必要ないかも)

/usr/local/sbin/makeuserdb

これで、/usr/local/etc/userdbから

-rw——- 1 root wheel 32768 2 9 20:37 userdbshadow.dat
-rw-r–r– 1 root wheel 32768 2 9 20:37 userdb.dat
-rw-r–r– 1 root wheel 0 2 9 20:37 userdb.lock

ができる。

4:パソコンのMUAで、IMAPの認証をMD5 Chalenge Response 認証に切替える。
パスワードは、上記でuserdbに設定したものを入れる。で、一応できたけど、結構だるい。

メール箱の設定

IMAPでは、「下書き」、「送信済み書類」などの特殊な用途のメール箱も サーバ側におくことができます。ただし、MUAによってサーバ側にできる 箱の名前が異なることが多いため、手動で設定する必要が発生することが多いです。

  • Draft, 下書きの箱の設定
    「かきかけ」の原稿を入れるフォルダ(いろいろ表現はあって、Draft, 下書き, Draftsなど)は、ユーザが指定する必要があります。MUAによって、どんなディレクトリ名にするのかがばらついているためです。つぎのような操作をしてください。
     MacOS XのMail.appの例
    1. パソコン側で、「下書き」につかう「フォルダ」をクリックして選択する
    2. メニューバーから、「メールボックス:このメールボックスの用途」を選択し、「下書き」を選ぶ。

以上です。これでサーバ上のフォルダに下書きが保存されます。

よくある質問

以下は、これまで起こった障害などについての問い合わせ/回答です。

IMAPとPOPは共存できるか?
技術的には可能だが、使い勝手からして基本的にはやらないほうがよい。IMAPではメールをすべてサーバ側に保存するため、POPでつなげると蓄積された莫大なメールを参照することになる。もし、これを受け取ってしまうと、莫大な量のメールがパソコンに流れ込む。
MUAによっては、すでにパソコン側に取得したメールは受け取らない設定のできるものもあるが、それでもMUAがメールを取捨選択する際に非常に時間がかかる。それでも仕方のない場合や、理屈がわかっていてやるならともかく、基本的にはやらないほうがよい。

経済学部Webメーラでソート(メールの並び変え)を実行したら、

Allowed memory size of 8388608 bytes exhausted (tried to allocate 188 bytes)

と表示され、ソートができなかった。
巨大なフォルダ(数千通)に対し、ソートの条件をかえて並べ替えようとするとsquirrelmailの自分が使っているプロセスがこける(→以降使えなくなる)ソートの結果を保持するのにメモリーを大量に要求するのだが、8MBのlimitがかかっているため。パラメータを変えれば大きくなる。(設定は/usr/local/etc/php.ini)

Web経済学部Webメーラで検索をかけると、何も表示されずに終ってしまう
巨大なフォルダで全文検索すると、時間がかかりすぎて接続が切られることがある。なるべくフォルダは用途別に分ける、MUA側で検索する、Time outの時間を長くする、などの対策がある。

既に Maildirに入ってしまっている mail を分類しなおすのはどうすればいいですか?
procmailは、標準入力からうけとった内容を、ルールに従って行き先に振り向けます。だからそれをやらせればいいかと。 受け取ったメールをいったん、どこかにひっこす

   cd ~/Maildir/cur
   mkdir tmp
   mv * tmp

一通一通を、procmailに食わせる

cd tmp
foreach f (*)
   cat $d | procmail
end

これで、~/.procmailrcにかいたルールが再利用できるような気がします。(実験してません。)


IGARASHI Yasufumi

Last modified: Wed Dec 15 16:32:23 JST 2004

2009.09.13 東が移植。リンク先設定方法が不明のため、その部分は保留
0915 経済学部固有の情報 の公開鍵番号~以降が意味不明になってしまっている。要編集。
2010.04/22 東 再編集

LDAP user to find: miyake [auth.php:186]
LDAP Server: ldap://133.100.109.234:389 [auth.php:189]
LDAP Filter: (&(uid=miyake)(objectClass=posixAccount)) [auth.php:200]
LDAP user search: Success [auth.php:202]
LDAP search at: ou=People,dc=econ,dc=fukuoka-u,dc=ac,dc=jp (&(uid=miyake)(objectClass=posixAccount)) [auth.php:203]
LDAP search found single result ! [auth.php:225]
LDAP group search: Success [auth.php:266]
LDAP search at: ou=Group,dc=econ,dc=fukuoka-u,dc=ac,dc=jp (&(objectClass=posixGroup)(|(gidNumber=1125)(memberUID=miyake))) [auth.php:267]
LDAP usergroup: yigarash [auth.php:286]
how_to_use_imap4_retouch.txt · Last modified: 2013/10/25 16:08 by miyake
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0