procmailの代わりに(makeを使って)maildropをインストールする(make編)
ご利用のブラウザは、JavaScript が無効 となっていませんか?
このサイトでは、コンテンツの一部が非表示 、あるいは、コメント、お問い合わせの投稿ができない 、検索ができない ことがあります。
procmailの代わりに(rpmを作成して)maildropをインストールする(RPM編) では、CentOS /Scientific Linux (RedHat系)のためのRPMバイナリパッケージを作成しました。
今回は、maildrop を単純にmakeからインストールしてみます。
この方法では、CentOS /Scientific Linux はもちろんのこと、
Debian /Ubuntu でも最新版をインストールすることができます。
Debian /Ubuntu では、正式なリポジトリからDEBバイナリーパッケージが提供されていますから、あえてmakeインストールする必要もないと思いますが、
ここでは、最新版をどうしてもインストールしたい場合など、makeインストールする場面もあるかと思いますので、簡単に解説してみます。
maildrop とは、
Courier Mail Serverによって使用される
MDA (
M ail
D elivery
A gent) です。maildrop は、
MDA (
M ail
D elivery
A gent)の機能のほかに、フィルター機能を有しています。
maildropは、stdin(標準入力)からメールを受信し、Maildir、mboxのいずれの形式にも配信します。
maildropは、メンテナンスされていないprocmailのMDAに代わるものとして提案されています。
(Wikipedea 原文)
maildrop is a Mail delivery agent used by the Courier Mail Server. The maildrop MDA also includes filtering functionality. maildrop receives mail via stdin and delivers in both Maildir and mbox formats.
maildrop has been suggested as an alternative to the unmaintained procmail MDA.
MDA とは、
メール配送エージェント(M ail D elivery A gent、MDA)で、メールサーバの中で、
メール転送エージェント(MTA)によって振り分けられた電子メールを受信者に配送する機能のこと言います。
maildropの最新版をmakeインストールする
では、早速、maildropの最新版をmakeインストールしてみましょう。
maildropの最新ソースコード一式をダウンロードします。
$ wget "http://sourceforge.net/projects/courier/files/maildrop/2.6.0/maildrop-2.6.0.tar.bz2/download" - O maildrop- 2. 6. 0. tar. bz2
...
$ tar xfj maildrop- 2. 6. 0. tar. bz2
maildropのmakeインストールするのに必要なパッケージをインストールします。
gcc g++ make は、最低限必要なパッケージです。
加えて、maildropをmakeするのに 各ディストリビューションにて、以下のようなライブラリが必要となり、それぞれインストールします。
CentOS /
Scientific Linux :
gdbm-devel pcre-devel が必要です。
$ yum - y install gcc gcc- c++ make
...
$ yum - y install gdbm- devel pcre- devel
...
Debian /
Ubuntu :
libgdbm-dev libpcre3-dev が必要です。
$ aptitude install gcc g++ make
...
$ aptitude install libgdbm- dev libpcre3- dev
...
make インストールします。
make インストールするには、以下の手順にて随時実行していきます。
configure を実行
make環境のチェックと、Makefileの作成を実施します。
$ cd maildrop- 2. 6. 0
[maildrop-2.6.0]$ ./configure
...
configure: creating ./config.status
config.status: creating xconfig.h
config.status: creating Makefile
config.status: creating README.html
config.status: creating testsuite
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure で正常に終了した場合は、Makefileから config.h まで 次のmakeに欠かせないファイル一式が作成されます。
make を実行
実際にmakeを実行します。
[maildrop-2.6.0]$ make
...
特にエラーがなければOKです。
make インストールを実行
最後にmake インストールを実行します。
[maildrop-2.6.0]$ make install- strip
...
/bin/bash /usr/local/src/maildrop-2.6.0/install-sh -d /usr/local/bin
/bin/bash /usr/local/src/maildrop-2.6.0/install-sh -c -s maildir/deliverquota /usr/local/bin/deliverquota
cd /usr/local/bin; rm -f maildrop.deliverquota
/bin/bash /usr/local/src/maildrop-2.6.0/install-sh -d /usr/local/bin
for f in maildrop mailbot reformail ; do \
/bin/bash /usr/local/src/maildrop-2.6.0/install-sh -c -s maildrop/$f /usr/local/bin/$f ; \
done
/bin/bash /usr/local/src/maildrop-2.6.0/install-sh -c -s liblock/lockmail /usr/local/bin/lockmail
/bin/bash /usr/local/src/maildrop-2.6.0/install-sh -c -s maildir/maildirmake /usr/local/bin/maildirmake
/bin/bash /usr/local/src/maildrop-2.6.0/install-sh -c -s rfc2045/reformime /usr/local/bin/reformime
/bin/bash /usr/local/src/maildrop-2.6.0/install-sh -c -s rfc2045/makemime /usr/local/bin/makemime
test "00" = "00" && exit 0; \
/bin/bash /usr/local/src/maildrop-2.6.0/install-sh -c -s makedat/makedatprog /usr/local/bin/makedatprog
...
各ファイルのインストール先は、上記のように出力されます。ここでは、すべての実行ファイルは、/usr/local/bin/ へインストールされています。
rpmのインストールを終えたら、メールボックスの作成のために suid , sgid の権限を付与しておきます。
$ which maildrop
/usr/local/bin/maildrop
$ chmod ug+ s / usr/ local/ bin/ maildrop
suid , sgid を設定していないと、メールボックスが作成されていない状態(要は初めてメールが着た)のとき、メールボックスが開けないというエラー(以下参照)が出力されます。
maildrop[2225]: Unable to open mailbox.
また、manが必要であれば、以下のようにインストールします。
[maildrop-2.6.0]$ make install- man
...
これでインストールまでOKです。
簡単だったですね。
簡単な動作確認をしておきます。
動作確認は、以下のようにして行うことができます。
$ echo TEST| maildrop - d hoge
これで、ユーザhogeへ”TEST”という情報がメールボックスへ配信されればOKです。
$ cat / var/ mail/ hoge
TEST
もし、動作がおかしいなと思ったら、オプションに
-V9 を指定してデバッグ情報を出力するようにしてみましょう。
$ echo TEST| maildrop - V9 - d hoge
maildrop: Changing to /home/hoge
Message start at 0 bytes, envelope sender=hoge
Tokenized eof
maildrop: Attempting .mailfilter
Tokenized cc
Tokenized string: "! hanako"
Tokenized ;
Tokenized ;
Tokenized eof
.mailfilter(1): Opening logfile /home/hoge/.maildrop.log
maildrop: Delivering to |/usr/sbin/sendmail -oi -f '' hanako
maildrop: Delivery complete.
maildrop: Delivering to /var/mail/hoge
maildrop: Flock()ing /var/mail/hoge.
maildrop: Appending to /var/mail/hoge.
maildrop: Delivery complete.
こんな感じで、細かい情報が出力されますので、どこでエラーが発生したかわかるようになります。
MTAにmaildropを組み込みます。
あとは、実際のメールを受信したときにmaildropで配信するようにMTAの設定を行います。
ここでは、MTA として Postfix と Sendmail について解説してみます。
実際にメール送信してmaildropの動作を確認してみます。
maildropには、いろんな機能がありますが、ここでは単純にmaildropが動作しているかの確認だけなので、
hoge宛のメールをhanakoさんへCCで転送してみます。
まず、hogeさんのmaildrop設定を、hogeさんのホームディレクトリに .mailfilter と名前で作成します。
その内容は、以下のように hanakoさんへメールのコピーだけです。
ローカルユーザの場合は、上記でOKです。外部ユーザ(メールアドレス)の場合は、しっかりメールアドレス記述する必要があります。以下は、その例です。
cc "! hanako@example.com"
また、ここで
.mailfilter のパーミッションを 600 に設定しておきます。パーミッションを設定しないとエラー (以下参照 ) となります。
maildrop: Cannot have world/ group permissions on the filter file - for your own good.
以下のようにパーミッションを変更しておきます。また、追加で所有者も確実にhogeにしておきます。
$ chown hoge. ~ hoge/. mailfilter
$ chmod 600 ~ hoge/. mailfilter
編集を終えたら、hogeさん宛にメール送信してみましょう。
確認は、できれば外部サーバーからのメール送信して、動作を確認した方が良いですが、内部からmailコマンドでもmaildropだけの動作確認としてはOKでしょう。以下はその例です。
$ mail hoge
Subject: Test-maildrop
This is Test-maildrop.
.
EOT
このメールが、hoge,hanako それぞれのメールボックスに配信されればOKです。
サーバー1台だけにmaildropをインストールするなら、makeインストールが全然楽です。
ただ、複数台へ同じようにmaildropをインストールしなければならない場合は、やっぱりバイナリパッケージが楽です。
その場合、CentOS/Scientific Linuxでは、RPMでしょうし、Debian/Ubuntuでは、DEBでしょう。
RPMは、正式なサポートはないものの、
procmailの代わりに(rpmを作成して)maildropをインストールする(RPM編) で解説したように簡単に作成できますから、あとはRPMを公開すればOKです。
DEBは、正式なパッケージがDebian/Ubuntuでありますから、それをそのままインストールした方が楽です。
多少、バージョン的に古い場合がありますが、メンテナンスの手間から考えても正式なパッケージを利用していた方がアップデートも楽でしょう。
今回は、最新のmaildropをmakeインストールしてみました。通常のバイナリパッケージとは、インストール先が異なるぐらいです。
また、ここでは、あまり触れていませんが、./configure には、maildropのすごい量の機能の有効・無効の指定を行うことができます。
設定を変更した場合は、必要となるライブラリが増えることもあります。
(ここでは、あくまで最低限必要なものとして、特に指定せずに実行しています。)
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用 となっていませんか?
このサイトでは、コンテンツの一部が非表示 、あるいは、コメント、お問い合わせの投稿ができない 、検索ができない ことがあります。
関連記事 :
コメントを投稿 :