Lookup使用例

このクエリでは、ODBCストレージ内maildテーブルのdomainカラムにあるドメインからの全てのメッセージが、保護されたドメインに属するものとされます。

ProtectedDomains = "odbc:select domain from maild where domain='\$s'"

 

このクエリでは、%etc_dir/email.iniからの全てのアドレス、ローカルホストアドレス、およびLDAPクエリldaps:///??sub?(mail=$s)の後に見つかった全てのアドレス(fake.com:が付いたものを除く)が保護されているものとされます。

ProtectedEmails = file:%etc_dir/email.ini, localhost, ldap:skipdomains=regex:.*fake.com$|ldaps:///--sub-(mail=$s)

 

このクエリでは、あるアドレスがMySQLデータベース内maildテーブルのemailカラムにリストアップされているかどうかのチェックが実行されます。アドレスが見つかった場合、メッセージはrouterinfoカラム内で見つかったアドレスに送信されます。それ以外の場合は、アドレス内にfooを含む全ての受信者に送信されます。

Router = mysql:select routerinfo from maild where email='\$s', foo inet:234@foo.ru

 

Lookupをルール内で使用することが出来ます。

このクエリによって、受信者アドレスを含んだ全てのmailLDAPフィールドがrulesフィールドを受信することが出来ます。rulesフィールドにはこの受信者に適用される設定が含まれています。特別な記号が使用されているので(丸括弧など)、CONDITIONsは全て引用符で囲まれている必要があります。

"rcpt:ldap:///-rules-sub-(mail=$s)" cont

例えば、

 rcpt:"ldap:///-rules-sub-(mail=$s)" cont,

と記述した場合、コンパイルエラーが発生します。

 Mon Jun 29 18:53:01 2009 [3081262768] maild.rules ERROR '(' can not follow' "ldap:///-rules-sub-'

 Mon Jun 29 18:53:01 2009 [3081262768] maild.rules ERROR error in parse condition: 'rcpt:"ldap:///-rules-sub-(mail=$s)" cont'

 

このクエリによってアドレスをチェックすることが出来ます。SQLiteデータベース内domainテーブルのskipaddrフィールドに送信者か受信者のアドレスが含まれている場合、それらに対してdrwebプラグインは使用されません。

 "any:sqlite:select skipaddr from domain where skipaddr = '$s'" cont scan=all:-drweb