本を読む

読書やコンピュータなどに関するメモ

軽量MTA「esmtp」を試してみた

 家庭LAN内で動かしているLinuxサーバーで、cronとかのデーモンが出すメールを受け取ろうと思いました。

 LinuxのMTAというと、Postfixやsendmail、あるいはqmailやexim4などが使われています。でも、デーモンからのメールをマシン内でローカルに受け取るだけだし、送信頻度も高くないので、ちょっと大袈裟な気がします。そこで、esmtpを試してみました。

esmtpって?

 esmtpは、ローカル配送はprocmailなどのMDAに丸投げ、外部への配送は外部サーバーにSMTPで丸投げ(スマートホスト)、という簡易MTAです。/etc/aliasesも、いまのところ使えません(Roadmapには載っている)。そのぶん小さいのが特徴です。

インストール

 Debian、Ubuntu、Fedoraなどにはパッケージがあります。CentOSならEPELで。

 以下、Debianの例。本体のesmtpと、sendmail互換インターフェイスのesmtp-runの2パッケージに分かれています。

$ sudo apt-get install esmtp-run procmail

 デーモンはなく、SMTPポートもリッスンしていません。

$ netstat -l | grep smtp
$

 esmtp-runはFedoraやEPELのesmtpにはありませんが、ようするに"ln -s /usr/bin/esmtp /usr/sbin/sendmail"みたいなことをやるパッケージのようです。

試す

 自分宛のメールを送ってみます。

$ cat mail.txt
To: emasaka
Subject: test

This is a test mail.
$ /usr/sbin/sendmail -t < mail.txt

 emasakaにメールが届きます。

$ cat /var/mail/emasaka
From emasaka  Fri Feb 12 09:17:26 2010
To: emasaka
Subject: test

This is a test mail.

 sendmailの標準にインターフェイスを合わせているので、/usr/sbin/sendmailや/usr/lib/sendmailを呼んでメールを出すデーモンやらMUAやらであれば、メールを送れます。/usr/bin/mailqや/usr/bin/newaliasesもあります。もちろん、newaliasesは機能しないダミーです。

root宛のメールなどを自分のメールボックスに

 すべてのメールを自分のメールボックスに集約するには、aliasesが使えないので、procmailでこんな(↓)ふうに設定すればいいのかな(危険はないか、教えてえらい人)。

$ cat /etc/procmailrc
:0
/var/mail/emasaka

 なんかprocmailの意味がないような気もしますが。

設定ファイル

 設定ファイルは/etc/esmtprc(全体設定)または~/.esmtprc(個人設定)。~/.esmtprcのパーミッションは710またはそれより厳しい値(600とか)にしておかないと警告メッセージが出ます。

 外部にメールを送るには、設定ファイルでSMTPサーバーを指定します。SMTP AuthやTLSにも対応しているようです。POP before SMTPは非対応。実験は面倒なのでパス。

 procmail以外のMDAに変えたいときも、設定ファイルで指定します。デフォルトは以下のとおり。

mda = "/usr/bin/procmail -d %T"

まとめ

 esmtpを使うと、常駐デーモンなしでローカルのメールを配送できます。ただ、aliasesは欲しいところです。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/712-653481b2

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad