すでに述べたように、FreeBSD には MTA (Mail Transfer Agent) として、 sendmail がすでにインストールされています。 したがって、デフォルトではこれがメールの送受信を担当しています。
しかしながら、さまざまな理由によって、 システムの MTA を変更しようと考えるシステム管理者もいるかもしれません。 その理由は、単に他の MTA を試してみたいというものから 他のメーラに依存する特定の機能やパッケージが必要だといったものまで、 多岐にわたることでしょう。 幸い、理由がどんなものであれ、FreeBSD では簡単に変更できます。
さまざまな MTA が利用できます。 FreeBSD Ports Collection から探しはじめるのがよいでしょう。 もちろん、どんな場所からでも、あなたが利用したい MTA が FreeBSD で動作する限りすべて自由に使えます。
新しい MTA をインストールすることからはじめましょう。
新しい MTA をインストールすると、
あなたの要求が実際に実現したかどうか決める機会が与えられます。さらに、
サービスを sendmail から引き継ぐ前に
新しいソフトウェアを設定する機会が与えられます。これを行う場合、
新しいソフトウェアが /usr/bin/sendmail
のようなシステムバイナリを上書きしようとしないことを確認してください。
そうしないとあなたが設定する前に新しいメールソフトウェアが本格的に動作しはじめてしまいます。
あなたが選択したソフトウェアを設定する方法についての情報は、 その MTA の文書を参照してください。
sendmail を起動するために使用されていた手続きは、 4.5-RELEASE と 4.6-RELEASE の間で著しく変更されました。 したがって、それを無効にするための手続きは微妙に違います。
/etc/rc.conf
に次の行を加えてください。
sendmail_enable="NO"
これは sendmail
のメール受信機能を無効にします。
しかし /etc/mail/mailer.conf
(下記参照)
が変更されていなければ、sendmail
はメールの送信にまだ使われるでしょう。
sendmail を完全に無効にするためには
/etc/rc.conf
に次の行を加えなくてはいけません。
sendmail_enable="NONE"
もしこの方法で sendmail のメール送信機能を無効にしたのなら、 完全に動作する代替メール配送システムと置き換えることが重要です。 さもなければ、periodic(8) などのシステム機能は、 それらの結果を通常想定しているようにメールで配送することができなくなるでしょう。 システムの多くの部分が sendmail 互換のシステムがあることを想定しているかもしれません。 もしそれらを無効にした後に、 アプリケーションがメールを送ろうとするために sendmail のバイナリを使用し続ければ、 メールは使われていない sendmail のキューに入り、そして決して配送されないでしょう。
もし sendmail
のメール受信機能だけを無効にしたいのなら
/etc/rc.conf
に以下の行を追加してください。
sendmail_enable="NO"
sendmailの起動オプションに関する詳細は rc.sendmail(8) マニュアルをご覧ください。
起動時に新しい MTA を起動するには二つの選択肢があります。 ここでも、あなたが稼働させている FreeBSD のバージョンに依存します
/usr/local/etc/rc.d/
ディレクトリに、
ファイル名が .sh
でおわり、
root
によって実行可能なスクリプトを追加します。
このスクリプトは start
および
stop
パラメータを引数として受け付けるようにします。
起動時にシステムスクリプトは次のコマンドを実行するでしょう。
/usr/local/etc/rc.d/supermailer.sh start
これは手動でサーバを起動するためにも使用できます。
システム終了時にはシステムスクリプトは stop
オプションを使用して、次のコマンドを実行するでしょう。
/usr/local/etc/rc.d/supermailer.sh stop
これはシステムが稼働している間に手動でサーバを停止するためにも使えます。
sendmail プログラムは UNIX® システム上の標準ソフトウェアとして本当にどこでも利用できるので、 これがすでにインストールおよび設定されているとみなしている ソフトウェアもあるかもしれません。 この理由により、代替となる MTA の多くは sendmail コマンドラインインタフェースと 互換性のある実装を提供しています。 これを 「差し込む」 ことによって、 sendmail の置き換えとして代替 MTA を使用することが容易になります。
したがって、あなたが互換メーラを使用しているときには、
/usr/bin/sendmail
のような標準
sendmail
バイナリを実行しようとするソフトウェアが、
実際にはその代わりにあなたの選択したメーラを実行しているということを
確かめる必要があるでしょう。
好運なことに、FreeBSD はこの仕事をする
mailwrapper(8) と呼ばれるシステムを提供しています。
インストールされたまま
sendmail が稼働しているときには
/etc/mail/mailer.conf
には以下のような記述があるでしょう。
sendmail /usr/libexec/sendmail/sendmail send-mail /usr/libexec/sendmail/sendmail mailq /usr/libexec/sendmail/sendmail newaliases /usr/libexec/sendmail/sendmail hoststat /usr/libexec/sendmail/sendmail purgestat /usr/libexec/sendmail/sendmail
このことは、これらのうちどの共通コマンド
(sendmail
自身のような) が実行されても、
システムは mailer.conf
を確認して、
代わりに /usr/libexec/sendmail/sendmail
を実行する
sendmail
という名前の mailwapper
のコピーを呼び出すことを意味します。
このようなシステムでは、デフォルトの
sendmail
が呼び出されたときに、
どのバイナリが実際に実行されるかを変更するのが簡単になります。
したがって、sendmail の代わりに
/usr/local/supermailer/bin/sendmail-compat
を実行させたいのなら、次のように
/etc/mail/mailer.conf
を変更してください。
sendmail /usr/local/supermailer/bin/sendmail-compat send-mail /usr/local/supermailer/bin/sendmail-compat mailq /usr/local/supermailer/bin/mailq-compat newaliases /usr/local/supermailer/bin/newaliases-compat hoststat /usr/local/supermailer/bin/hoststat-compat purgestat /usr/local/supermailer/bin/purgestat-compat
本文書、および他の文書は https://download.freebsd.org/ftp/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。