本稿で紹介している内容は、 Sendmail-8.9.3 メールサーバー構築(古いので削除しました)で紹介した内容を継承しています。ここで紹介した Sendmail-8.9.3 で FMLを導入していた場合は修正が必要です。
FML 未導入の場合は必要のない設定なので飛ばしてください。
先ほどの修正に加え、以下の個所を修正します。
define(`ALIAS_FILE',`/etc/mail/aliases,/var/spool/ml/etc/aliases') --1
再度M4プリプロセッサによりsendmail.cfを生成して下さい。
/usr/lib/sendmail-cf/cf/sendmail.cf が生成されます。
/etc/mail/sendmail.cfと置き換えてSendmailを再起動して下さい。
その際、エラーがないか確認します。
aliasesファイルがML用と2つあるため、念のため以下の手順を踏みます。 このサイトで紹介しているFMLのインストールディレクトリを基準に解説しています。
以下のように表示されればOKです。 この修正を加えたsendmail.cfを作成し、/etc/sendmail.cfと差し替えてSendmailを再起動します。
メーリングリストで使用していたaliasesファイル、及びaliases.dbファイルの所有権、パーミッションに注意する必要があります。WEBブラウザで管理するFMLを紹介していますが、今回の設定でファイルの所有権が変わっていないか注意して下さい。
上記の設定だけでは、メーリングリストは正しく動作しません。ちなみにメーリングリストにメールを転送すると以下のデリバリーが返ってきます。
smrsh: fml.pl not available for sendmail programs
これはsendmailが利用するshellが、より安全なsmrshを利用するようになったためです。fml.plを実行しようとしたがsmrshに よってはじかれてしまった事を意味します。この問題を回避するためにsmrshにfml.plの実行を認めさせなければなりません。
このサイトで紹介したFMLインストールを基に解説します。ディレクトリが異なる場合は適宜読み替えて下さい。メーリングリストの章ではFMLインストール時に以下のディレクトリを選択しました。
EXEC FILES DIRECTORY [/usr/local/fml]
TOP LEVEL ML DIRECTORY [/var/spool/ml]
以下のディレクトリにsite_init.phファイルを作成します。
/var/spool/ml/etc/fml/site_init.ph
site_init.phに以下の内容を記述します。
push(@INC, "/usr/local/fml");
push(@LIBDIR,"/usr/local/fml/module");
push(@LIBDIR,"/usr/local/fml/module/CPAN");
push(@LIBDIR,"/usr/local/fml/module/Japanese");
push(@LIBDIR,"/usr/local/fml/module/fml-devel");
1;
fml.pl,libloadconfig.pl,default_config.phをそれぞれ/etc/smrshにシンボリックを張ります。
ここで紹介しているSendmailのインストールはTurboLinuxのrpmを利用しているので /etc/smrsh になりますが、他のディストリビュータやソースやソースからコンパイルしてsendmailをインストールしている場合はパスが異なるかも知れません。
ここで紹介している回避策はFMLの本家サイトで紹介されていた方法を元に解説しています。