$Id: cf_test.html,v 1.2 2000/04/25 11:05:47 naito Exp $
ここに述べていることは, すべて私が実行した方法であり, これによる損害等については, 一切私は責任を持ちません. 各自の責任で行なって下さい.

CF の設定のテストの方法

ここでは, 上のようにして指定した各種のファイルが 希望通りに動作するかどうかをテストする方法を述べます.

はじめに, 各種の設定ファイルがユーザ daemon が読めるように permission を設定します. 次に, CF により, sendmail.cf を作成します. (この段階では, テストを行なうので, 作成した sendmail.cf は, 作成したディレクトリにそのままおいておきましょう. ) ここで作成した sendmail.cf のファイル名 (full path) を $CFFILE とします.
次に, sendmail をテストモードで起動します. すなわち,

$SENDMAIL -bt -C$CFFILE
とします. すると,
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter  
>
となるので, この後に各種のテストを行ないます.
ここまで修正済み

対話モードでのテスト

最初に, SMTP 接続元のホスト情報を与え, FROM 行の内容でテストをします. ここでは, 次のデータを与えることにします. これだけの情報を与えて, メールの中継を行うかどうかをテストします.
> .D{client_addr}12.34.56.78  (発信者のIPアドレス)
> .D{client_name}connect.host (発信者のFQDNの確認)
> ${client_addr}              (発信者のIPアドレスの確認)
12.34.56.78
> ${client_name}              (発信者のFQDNの確認)
connect.host
> check_mail spamtest@from.host (エンベロープFROM)
この結果, rejected で終れば, そのメールは配送を拒否されます. 次に, 接続元のホストの情報によってテストをします.
> .Dfspamtest@from.host         (エンベロープFROM)
> $f                            (エンベロープFROMの確認)
spamtest@from.host
> check_rcpt spamto@to.host     (エンベロープTO)
ここで, 発信元ホストの FQDN とIPアドレスを与えます. この結果, rejected で終れば, そのメールは配送を拒否されます.

これらエンベロープFROMのチェック, エンベロープTOのチェックの両方が OK となると, 初めてメールの中継が行われます.

バッチモードでのテスト

以上のテストをバッチで行うことができます. そのためには,
.D{client_addr}12.34.56.78  
.D{client_name}connect.host 
${client_addr}
${client_name}
check_mail spamtest@from.host 
.Dfspamtest@from.host
$f
check_rcpt spamto@to.host
という内容のファイルを用意しておき(これを test.mail というファイル名と仮定します.)
$SENDMAIL -bt -C$CFFILE < test.mail
とすることにより, バッチモードで結果を確認することができます.

sendmail.cf のデバック

cf ファイルを書き換えた時, より詳細にルールへのマッチの確認をしたいときには, コマンドラインまたは, 対話モード中で -d21.12 というデバックモードを指定することにより, 通過した各ルールへのマッチの様子が表示されます. (結構大量の出力になります)

実際のテスト内容

先ほど作った cf ファイルが期待通りに動作するかというテストを行います.
メールの中継に関するテストでは, telnet mail-abuse.org を行うことにより, 外部からの中継を拒否できるかどうかのテストができます. そこで, ここではそれを参考にテストを行います.

以下は, 上のバッチモードでのテストの結果です.


naito@math.nagoya-u.ac.jp