Sieve

提供: First Wiki
ナビゲーションに移動 検索に移動

Script storage types

Sieveスクリプトは、メッセージの配信過程のさまざまな段階や、保存されたメッセージに対して評価することができます。 Sieveスクリプトの保存形式によって、適用可能な場所、保存場所へのアクセス方法、および取得された Sieve スクリプトの評価方法が決まります。

Sieveスクリプトの保存形式は、sieve_script_type 設定を使用して構成します。 現在、以下の形式が認識されています(その他の形式は sieve-imapsieve プラグインによって定義されています):

personal

パーソナルストレージは、ユーザーのメインのパーソナルストレージとして機能します。 複数のパーソナルストレージを定義することは可能ですが、設定で最初にリストされているもののみが使用されます。

LDA Sieveプラグインは、配信時のSieveフィルタリングに使用するアクティブなスクリプトを検索するために、このパーソナルストレージを利用します。 ストレージが複数のスクリプトの保存に対応している場合(ファイルストレージなど)、パーソナルスクリプトは名前で取得することも可能です。 Sieve include拡張機能は、このストレージを使用して :personal スクリプトを取得し、ManageSieve サービスはユーザーのスクリプトをそこに保存できるようになります。

ストレージが複数のスクリプトの保存に対応している場合、配信時に使用されるアクティブなスクリプトはそれらのうち1つだけとなります。 アクティブなスクリプトは、ユーザーが ManageSieve サービスを通じて管理できます。 個人用ストレージにアクティブなスクリプトがない場合、設定されていればデフォルトのスクリプトが実行されます。

個人用ストレージが明示的に定義されていない場合、自動検出が行われます。 現在、自動検出では sieve_storage_file のみが試行されており、~/.dovecot.sieve スクリプトファイル、またはスクリプトファイルを含む ~/sieve/ ディレクトリを検索します。 後者の場合、~/.dovecot.sieve はアクティブなスクリプトファイルを指すシンボリックリンクであることが想定されています。 自動検出でも個人用ストレージが見つからない場合、Sieve 処理はスキップされ、デフォルトのスクリプトも実行されません。

after

after ストレージはユーザーの個人スクリプトの後に実行される1つまたは複数のスクリプトのソースとなるものです。 ストレージが複数のスクリプトの保存をサポートしている場合、これらのスクリプトはストレージドライバによって定義された明確な順序で実行されます。 複数のアフターストレージを設定することができ、各ストレージは順番にアクセスされ、個人スクリプトの後に実行するスクリプトが取得されます。 sieve_script_precedence 設定によって順序が上書きされない限り、ストレージへのアクセスは設定で定義された順序で行われます。

これは通常、グローバルスクリプトであるため、その場合は sievec(1) に説明されているように、sievec コマンドラインツールを使用して指定されたスクリプトを手動で事前コンパイルするようにしてください。

before

beforeストレージは afterストレージとまったく同じように動作しますが、含まれるスクリプトがユーザーの個人用スクリプトの「後」ではなく「前」に実行される点が異なります。

default

default のスクリプトストアには、ユーザーの個人用 sieve スクリプトが存在しない場合にのみ実行される sieve スクリプトが格納されます。 複数のデフォルトのスクリプトストアを定義することは可能ですが、設定で最初にリストされているもののみが使用されます。

このスクリプトストアに対して sieve_script_name が設定されている場合、ManageSieve(およびdoveadm sieve)を通じて、この名前でデフォルトのスクリプトを表示およびアクセスすることができます。 詳細は以下を参照してください(#visible-default-script visible default script)。

これは通常、グローバルスクリプトであるため、その場合は sievec(1) に記載されているように、sievec コマンドラインツールを使用して指定したスクリプトを手動で事前にコンパイルしておく必要があります。

discard

discard ストレージは、破棄されようとしているメッセージ(つまり、通常の sieve の実行ではどこにも配信されないメッセージ)に対して実行されるSieveスクリプトを生成します。 複数の破棄ストレージを定義することは可能ですが、設定で最初にリストされているもののみが使用されます。 破棄ストレージは現在、メッセージの配信にのみ適用されます。

破棄ストレージのスクリプトは、「implicit keep」が(例えば「discard」アクションによって)解除され、かつメッセージを配信するアクションが実行されない場合にのみ実行されます。 この場合の「配信」とは、メールボックスへのローカル配信と、リモート受信者へのリダイレクトの両方を指します。 この「破棄スクリプト」は、代替アクションを実行することで、メッセージの破棄を防ぐことができます。 破棄スクリプトが何も実行しない場合、破棄スクリプトが設定されていない場合と同様に、メッセージは破棄されます。

global

global ストレージは、Sieveのインクルード拡張機能における :global インクルードスクリプトのソースとなります。 スクリプトは名前で参照されるため、ストレージが1つのスクリプトしか提供しない場合は、そのスクリプトに名前を定義する必要があります。 これは、ストレージドライバによって暗黙的に行われるか、sieve_script_name を使用して明示的に行われます。 複数のグローバルストレージを設定することができ、要求されたスクリプトを名前で取得するために、各ストレージが順番に照会されます。 スクリプトが見つかるまで、設定で定義されている順序に従ってストレージが照会されます。 この順序は設定 sieve_script_precedence によって上書きすることができます。