ユーザ、グループ、エイリアスの管理

Rules内でクライアントごとに特定の設定をしたり、それらを柔軟に調整することが出来ます。また、複数のユーザをグループにまとめ、そのグループに対して設定をすることも可能です(グループ設定は該当するグループ内の全てのユーザに適用されます)。

ユーザの数が多い場合、ルール内でそれぞれに対して設定をするのは効率的ではありません。設定するルールが多ければ多いほどユーザに対する設定の検索が遅くなるからです。検索の速度を速めメモリを効率的に使用するために、各ユーザに対するルールはローカルデータベースに保存することを推奨します。

ルールに加え、ユーザに関するその他の情報もいくつかデータベースに保存されます。特定のユーザに関する情報を見るにはコントロールソケットにemail-infoコマンドを送信してください。情報は以下の書式で出力されます。

[client-id1/]email1 A=active1 S=stat1

name: name1

aliases: alias1 alias2 ..

groups: group1 group2

rules:

1: rule11

2: rule12

...

custom:

tag1: info1..

tag2: info2..

...

client-id1 - ユーザが属するクライアントのIDです。
A=active1 - このユーザがアクティブかどうかの指定です。アクティブでない場合、ユーザ設定を持つルールは全て無視されます。
S=stat1 - このユーザに関する別々の統計情報を収集するかどうかの指定です。各ユーザごとに統計情報の収集を有効にするには、一般統計情報に対してhigh ログの詳細レベルを設定してください。
name: name1 - ユーザ名です。
aliases:, groups:, rules:, custom: - エイリアス、グループ、グループおよび個人の設定などに関する情報です。

ユーザはグループにまとめることが出来ます。グループはユーザと同じ設定(クライアントID、グループ名、アクティビティステータス、別々の統計情報を入手可能かどうか、グループメンバーのリスト、および追加のサービス情報)を持っています。特定のグループに関する情報を見るにはコントロールソケットにgroups-infoコマンドを送信してください。情報は以下の書式で出力されます。

[client-id1/]group1 A=active1 S=stat1

emails:

email1

email2

...

custom:

tag1: info1..

tag2: info2..

...

ユーザが複数のアドレスを持っている場合、それらを次の方法でまとめることが出来ます。1つのアドレスをプライマリメールアドレスにし、その他のアドレスをエイリアスとします。その結果それらのアドレスは全て1つのものとして扱われ、同じ設定が適用され、統合された統計情報が収集されます。

パラメータの値は以下のアルゴリズムで選択されます。

ユーザに対するルール内でパラメータ値を検索します。
ユーザのルール内にそのようなパラメータが無い(またはパラメータ値が指定されていない)場合、このユーザが属するグループに対するルール内で検索が行われます(一覧の最後にあるグループから最初のグループまで)。
グループの設定内にそのようなパラメータが無い(またはパラメータ値が指定されていない)場合、設定ファイル内で指定されたクライアントのルールで検索されます。
それでもパラメータが見つからない場合、設定ファイル内で指定されたグローバルルールで検索が実行されます。
設定ファイル内に無い場合はデフォルトのハードコードされた値が使用されます。

値は最初に見つかったものが適用されるため、ユーザに対するリスト内で指定するグループの順番は非常に重要です。

メッセージ内で複数の受信者が指定され、それらの受信者に対して同じパラメータの異なる値が見つかった場合、以下の2つの解決方法があります。

1.いくつかのパラメータに対して([Rules] セクションに記載)メッセージが複製され(各受信者に対してメッセージのコピーを作成)、異なるコピーに対してそれぞれ異なる設定を適用。
2.それに対してメッセージを複製出来ないようなパラメータを無視し、クライアントの設定を適用、またはグローバル設定かハードコードされたデフォルト値を使用。

設定をチェックする際にユーザルールとグループルールは結合され、1つのリストとして処理されるので注意してください(ユーザのルールが最初にきます)。そのため、それらのリストを処理する際にはリスト内の「ユーザ」部分の設定が「グループ」部分の設定と一致し、上記のアルゴリズムが実行されます。

ユーザグループ、およびエイリアスの管理はコントロールソケット経由、またはウェブインターフェース経由で行うことが出来ます。

ユーザ、グループ、エイリアスの管理には特別なコマンドを使用します。

client - Dr.Web for UNIX mail serversの管理者です。空の識別子が割り当てられます。
email - ユーザのメールアドレスです(RFC5322準拠)。山括弧(<>)や引用符('')で囲むことが出来ます。長さは1024バイト以下にしてください。
client-email - 2つの値[client-id/]email Dr.Web MailDではclient-id は常に空です。
emails-list - client-email の一覧で、空白で区切って列挙します。
group - グループ名で、一重引用符で囲みます。対応するサブストリングに空白が含まれていない場合、引用符は省略できます。引用符を使用する場合、テキスト内にある一重引用符の前に追加の一重引用符を置く必要があります。グループ名の長さは1024バイト以下にしてください。
client-group - 2つの値[client-id/]group Dr.Web MailDではclient-id は常に空です。
ext-client-group = [client-id/]group | client-id/ - client-groupと同じです。
group-list - client-group の一覧で、空白で区切って列挙します。
ext-group-list - ext-client-group の一覧で、空白で区切って列挙します。
RULE - Dr.Web MailDルールの一覧にあるルールです。ストリングにカンマが含まれ、それらが引用符で囲まれていない場合、それぞれのカンマの前にバックスラッシュ\を1つ置く(可能な値が1つのパラメータ)かまたは複数\\\置く(可能な値が複数あるパラメータ)必要があります。

:

true cont headersfilter/RejectCondition = FileName = \"\.e\\\,e\"\, FileName = \"\.com\", headersfilter/RejectPartCondition = FileName = \"\.e\\\,e\"\, FileName = \"\.com\"

true cont vaderetro/action = discard\, quarantine

tag - ユーザ、またはグループに関する情報の検索タグとして使用される任意の記号のストリング[a-zA-Z0-9_-]です。ウェブインターフェースに対するこのパラメータの値はwebに設定されています。
info - 改行までのライン全体です。従って改行、ヌル文字を含むことが出来ません。
settings - ユーザまたはグループに対するいくつかの設定で、parameter_name=valueのペアで指定できます。パラメータは空白で区切ります。以下のパラメータを使用することが出来ます。
oA (active) - 0(アクティベートされていない)または1(アクティベートされている)のいずれかの値をとることが出来ます。オブジェクトがアクティベートされていない場合、そのオブジェクトと接続されている全てのルールは使用されません。デフォルトではどのオブジェクトもアクティブと見なされます(このパラメータ値が指定されていない場合)。
oS (stat) - オブジェクトに対する統計情報の収集を設定します。0(アクティベートされていない)または1(アクティベートされている)のいずれかの値をとることが出来ます。このパラメータの無効化(0)は、統計情報収集のプロセスにのみ影響し、結果には影響しません(既に収集されている統計情報はそのままです)。デフォルトでは、統計情報の収集は無効です。
oN (name) - ユーザの名前で(グループに対してはこのパラメータは無視されます)、グループの場合と同様に一重引用符で囲むことが出来ます。このパラメータが指定されていない場合、ユーザ名は空のままになります。長さは1000バイトまでです。

:

S=1 A=0 N='Some user'

S=0

あるclient-emailに対するグループの優先順位づけをそのまま維持する為に、それぞれのclient-emailに対してグループのセットは管理されますが、グループに対してclient-emailのセットは管理されないので注意してください。