Sendmailのバージョンアップ

RedHat Linux 5.2JにバンドルされていたSendmailはバージョン8.8.7でした。 1999年9月現在の最新版はバージョン8.9.3です。 最新版はwww.sendmail.orgからダウンロードできます. バージョン8.9.3では、かなり安全面で改良がなされているようです。

コンパイル

ダウンロードしたソースプログラムをコンパイルするのは全く簡単です.

sh Build

で終わりです.

後はできた実行プログラムを、昔のプログラムと取り替えるだけです. sendmailは/usr/sbinにあります。前のバージョンはsendmail.oldとでも 変更してから以下のようにインストールします.

sh Build install
リブートまたは、「/etc/rc.d/init.d/sendmail restart」 を実行してsendmailを再起動します(newaliasesも忘れずに)。

sendmail.cf

バージョン8.8.7のsendmail.cfをそのままバージョン8.9.3のsendmailで使用しても 特に問題はありません.ただし、それではバージョンアップの目的をすべて達成したわけでは ありません.バージョン8.9.3のsendmail.cfを作成して使用すべきです.私のサーバ環境では 標準的なメールのやり取りをサポートしているだけなので「generic-bsd4.4.cf」という サンプルファイルを/etc/sendmail.cfにコピーして使用しました。この時点での変更点は ローカルにメールを配信するためにprocmailを使用しているので、以下の部分を変更しただけです.
Mlocal,............
A=procmail -Y -a $h -d $u

第三者メールの配信

何も設定しなければ、バージョン8.9.3のsendmailはメールをリレーしません. つまり、私のサーバ上(TinyForest.gr.jp)でメールアカウントの無い人(第三者) がTinyForest.gr.jpのサーバを利用して、第三者にメールを送信することはできません。

これは、いわゆるSPAMメール(ゴミメール)を防止するために必要です.SPAMメールとは、 ゴミのように価値の無い宣伝メールなどを大量に送信する大変迷惑なものです。 ただし、そうすると、ちょっと困ったことになります. 例えば、外出先からメールを送る場合などです.外出先からインターネットにアクセスする場合、 わたしはNiftyに接続します.これは、NiftyのアカウントでNiftyのサーバを経由することを 意味します.私宛てのメールが来ているかどうかは私のメール受信サーバ にログインすることで調べることが可能です.ところが、返事を出すときに問題が生じます. このままでは、Niftyのアカウント(第三者)から返事を私のメール送信サーバを通じて出す ことになります.これはできないように設定されているのです.原因は、歴史的な理由により、 メール送信サーバにはログイン機能が欠如しているからです.

もっとも、Niftyに接続しているのでNiftyのメール送信サーバを利用すれば問題ありません. しかし、メールの契約をしていないプロバイダーを通してインターネットにアクセスする場合は メール送信をできないことになります.

このような問題を何とかするために POP Before SMTPという 機能を採用しました.