ハウツー:Sendmailの代わりにシンプルなsSMTPを使う

 Sendmailと言えば、古くはSlackwareの黎明期よりLinuxディストリビューションで使われ続けてきた由緒あるプログラムだ。しかしSendmailは高機能すぎるので主にISPのメールサーバを利用している普通のデスクトップユーザにとっては必ずしも理想的なソリューションではない。一方、sSMTPはそのような場合にうってつけのシンプルなソリューションだ。

 MTA(Mail Transfer Agent)として知られるアプリケーションは、はるか昔に、つまりインターネットでSMTP(Simple Mail Transfer Protocol)が標準規格化されるよりも前に、メールの処理やメール配信のための最適なルートの決定を手助けするものとして設計された。そのようなもっとも初期のMTAの一つがSendmailで、複数のネットワーク間でのメールの配信をするために非常に普及した。Linuxが広まりつつあった当時、Sendmailはメール配信用のオープンソースソフトウェアとして唯一実用的なものだったため、多くのLinuxディストリビューション上で提供されるデフォルトのMTAになった。

 メールの処理はこれまでも常に分業化されていて、MTAがメールの配信を受け持つのに対して、ユーザがメールを作成/管理するのにはGNOMEのEvolution、KDEのKMail、MozillaのThunderbirdなどといったMUA(Mail User Agent)が使われる。MUAはメールの配信については最初のステップのことだけしか把握していない。言い換えると、MUAは最終的なメールの宛先にメールが届くまでのことを知っているわけではなく、通常はサーバ上にある特定のMTAにメールを届ける(その後MTAが最終的な宛先までのメール配信を担当する)方法について把握しているだけだ。

 メール経由で警告を送るcronジョブや何らかの自動化システムを使用している場合、システムがメールの送信にデフォルトで使用することになるのはSendmailだ。これは、Linuxシステムのmailコマンド(通常は/bin/mail)が使用するデフォルトのMTAがSendmailであるためだ。そのためそのようなメールもISPのメールサーバから受け取るためにはメールリーダの設定を行なうだけでなく、Sendmailの設定も行なう必要があるということになる。

 残念ながらSendmailの設定は非常に煩雑なため、ベテランユーザでもできることなら避けて済ませたいという代物だ。そのためSendmailは、普通のデスクトップユーザにとって理想的なツールだとは言い難い。

 Sendmailの代替物として普及しているMTAにはQMailとPostfixの2つがあって、どちらも当初はシンプルなMTAだったものの、自ずと複雑なシステムへと変化し、今では単に手元のマシンからISPまでメールを送りたいというだけの普通のデスクトップユーザのニーズをはるかに越えた機能が備わっている。その他にも、elmやpineなど/bin/mail以外のツールに直接SMTPを扱わせてメールを送信するようにするという方法もあるが、これらはフル装備のMUAクライアントなので、ISPにメールを届けるというメインの目的にとってはオプションがあまりに多すぎオーバースペックだ。