[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .

変形版メールサーバ: 110/tcp を開かずに POP したいな

どういうケース?

SMTP → メールサーバ (自分宛のメールは受けとる)
                     ← pop over ssh ← クライアント
のような形を作りたい。 が、メールサーバで 110/tcp のソケットを開くなどということはしたくない。 主に、暗号化や認証強度について憂慮するところがあるからだ。

適当にファイルに mbox 形式で突っ込んで ssh ごしに取り出せばええやん というのが安直な発想だが、これはこれでロックの問題とか、切り出した後 どうする?とかいうあたりを作りこまないといけないので面倒だ。

UNIX たるもの、 既存のツールを組み合わせて、shell script 数行程度で なんとか hack したい。

解決案 (1): courier-imap (imapd) over ssh

ロック問題を考慮して Maildir を採用することにする。

Maildir を直接読む popd ないし imapd を使うことで listen もしない。 (節のタイトルは POP とかいってるのに:-) 今回は、とりあえず imapd を使ってみよう。 クライアントからは

 
% ssh メールサーバ imapd Maildir/
などとして、クライアントは直接 IMAP プロトコルを( ssh 上で )話す ことで、暗号化と認証は SSH にすべてまかせることにする。

さらに、クライアントは IMAP で受けとったメールをすかさず procmail にく べて、配送処理( folder 仕分け処理)を行なうことで、MTA ( postfix )へ渡 す処理は省く( 配送先は ~/.procmailrc 次第でどうとでもなるということで すな )。

これらを全部合わせると、こんな感じの script になる。

command="$ssh -l ユーザ %h /usr/pkg/bin/imapd /ほーむ/でぃれくとり/Maildir"

/usr/pkg/bin/fetchmail \
        -m /usr/pkg/bin/procmail \
        --plugin "$command" \
        -u ユーザ \
        -p imap \
        -a \
        メールサーバ

[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >