FirstClassトップページ


ヘルプの目次
このヘルプについて このヘルプについて
 
エンドユーザ向けヘルプ エンドユーザ向けヘルプ
Client Help クライアントヘルプ
Web Help Webアクセスヘルプ
ScreenReader Help スクリーンリーダ
Form フォーム
Synchronization 同期
Definitions 用語
container コンテナ
 
管理者向けヘルプ 管理者向けヘルプ
Administration サーバの管理
Internet Services インターネットサービス
Customization Tools カスタマイズツール(英語)
Administering OTSW OTSWの管理
OTSW Custodian OTSW Custodian
Using FirstClass ED FirstClass ED(英語)
 
バナー:
 
 A187
 
SMTPメールルールのテスト



SMTPメールルールのテスト部
テスト部には、特定のヘッダで実行するテストの内容を記述します。ルールのスクリプト言語では、テストは通常次の3種類に区分されます。
・単純式
・正規表現式
・条件式



単純
単純式は二重引用符で囲まれた文字列("")で、この文字列をRFC-2822ヘッダのデータ内で適用します。文字列の大文字と小文字は区別されません。文字列には、次のような単純なワイルドカードを含めることができます。
・クエスチョン(?):任意の1文字を表します。
・アスタリスク(*):任意の文字列を表します。
引用符で囲んだ文字列の前に「NOT」を入れることもできます。これは、そのテストを反対の意味にすることを表します。例えば、次のRFC-2822ヘッダをルールによって処理する場合を見てみましょう。
Date:Tue, 11 Feb 2003 16:27:41 -0500
Date:"Feb 2003" spam
条件がTRUEならば、メッセージをスパムと認定します。
Date:"Tue, 11 Feb 2003 16:27:41 -0500" spam
条件がTRUEならば、メッセージをスパムと認定します。
Date:NOT "200?" spam
条件がFALSE(TRUEでない)ならば、メッセージをスパムとは認定しません。
Date:"*Feb*" spam
条件がTRUEならば、メッセージをスパムと認定します。



正規表現式と拡張正規表現式(regexpとeregexp)
正規表現式は、一致する文字列のパターンを記述する一般的な方法です。通常、正規表現式はUnix環境で使用され、単純式より詳細な一致パターンを利用できます。また、一致したデータを、後で使用できるよう変数に保存できます。インターネットサービスは拡張正規表現式(eregexp)にも対応していますが、同じ検索を行う場合は、正規表現式の方が倍の速さで処理できます。
例1
From:regexp:".*@[0-9]+\\..*" spam
この式は、
・最初の部分のドメイン名がすべて数字であるかどうかをチェックし、そうであればスパムと認定します。
例2
Subject:regexp:"[A-Z\\?\\!\\.\\,0-9]+" spam
この式は、
・件名がすべて数字と句読点付きの大文字であるかどうかをチェックし、そうであればスパムと認定します。
例3
Content-Type:regexp:".*name=\"\\(.+\\)\"" SET $attname="\\1"
この式は、
・Content-Typeヘッダ内の添付ファイル名を見つけ、(ウイルス対策などのために)他のルールで使用できるよう$attname変数に保存します。



拡張表現式
regexp:条件」以外に、次の式を利用できます。
eregexp:拡張正規表現式の構文が利用できます。
eregexpi:拡張表現式の構文が利用でき、大文字と小文字が区別されません。
拡張正規表現式を利用すると、現在の正規表現式の構文よりもはるかに強力な照合処理を実行できますが、速度は遅くなります。eregexpiは、[Aa]など以下のような構文を含む正規表現式を記述している場合に使用する必要があります。例えば、次のような記述が可能です。
eregexp:"[Vv][Ii][Aa][Gg][Rr][Aa]"
この式は次のように書き換えることもできます。
eregexpi:"viagra"



条件式
条件式は、変数の状態をテストしたり、あらかじめ備わっている機能を利用したりする場合に使用します。条件式は常に「IF)」の形式で記述し、変数のテストを行うか、またはあらかじめ備わっている関数を呼び出すために使用します。条件式の例をrules.MailRulesファイルからいくつか見てみましょう。
^: IF (@istrustedip($senderip)) DONE
この式は、
・信頼できるIPの一覧のIPアドレスが登録されていれば、ルールの処理を省略します。
・任意のヘッダが処理される前に(^)、既存の変数である差出人のIPアドレス($senderip)が信頼できるIP一覧にあれば、DONE動作を行います(これ以上の処理を省略します)。
From:if (@isspamaddress($from)) SET $spamlevel += 101 AND $spamtests += "FROM_IN_SPAM_FILTERS;"
この式は、
From名がスパムアドレスの一覧に登録されているかどうかをチェックします。
Fromヘッダの処理で、Fromのアドレスがスパムアドレスの一覧にあれば、100を超える値にスパムレベルを設定し、その理由を$spamtests変数に追加します。

 

Copyright(C) 2002-2012 FC Management Co. All Rights Reserved