sendmail の access_db 機能について読んでいます。どうやら、スパムを阻止する予防策として有望なようです。
access_db の使用方法に関していくつか質問があります。基本的には、アクセス ファイルに一連のルールを指定すると、sendmail がこのデータベースをチェックして、電子メールに関して何かする必要があるかどうかを確認します。
- 指定されたルールのいずれにも当てはまらないメールについてはどうなりますか? デフォルトの動作は何ですか?
- 正規表現を使用できますか? たとえば、「To:*@spam.com REJECT」は機能しますか?
- 「paypal.com RELAY」のみがある場合、私の sendmail は paypal.com から発信されたメールや paypal.com 宛てのメールを受け入れて送信するということですか?
どうもありがとう!
答え1
- ルールが access_db のルールと一致しない場合、メッセージの受け入れまたは拒否には影響しません。メッセージは、残りのルールによって引き続き処理されます。
- access_db(およびワイルドカード(正規表現ではない))が記述されているここ正規表現が必要な場合は、access_dbの動作を模倣した独自のルールセットを記述して正規表現マップを使用するか、次のようなmilterを使用する必要があります。MIME の牙、 またはミルター正規表現。
From:
ルールが自分のホストに接続するホストのドメイン名に関するものか、送信者のアドレスのドメイン名に関するものかを考える必要がないように、単純な IP アドレスやドメインの代わりに、またはで始まるルールを使用Connect:
するのが最適です (これらは必ずしも同じではありません)。
答え2
Sendmailで正規表現を使用する方法
3456.com のような数字だけのドメインからスパムメールが送られてきて、最初は access.db に 10,000 件のエントリを追加しましたが、これはひどいものでした。
sendmail.mc ファイルの下部、メーラーの後に、次のような正規表現を追加できます。
LOCAL_CONFIG
Kallnumbers regex -a@MATCH @[0-9]+\.com
LOCAL_RULESETS
SLocal_check_mail
R$+ $: $(allnumbers $1 $)
R@MATCH $#error $: "550 Rejected."
いくつかの部分を変更するだけで、ほとんどをそのままコピーできます。
正規表現を定義して識別子を付け、その前にK
my identifer isallnumbers
とmy regex isを付けます。[0-9]+\.com
Kallnumbers regex -a@MATCH @[0-9]+\.com
最後の2つは一致と実行されるアクションを定義します
R$+ $: $(allnumbers $1 $)
R@MATCH $#error $: "550 Rejected.
とても CF に見えるのはわかっていますが、MC に入ります。