2005-10-03 [長年日記]

[Q3] ラベル (7)

マージしました。明日のNightly Buildから使えるようになります。ルールでラベルを設定するアクションがありませんが、マクロを使って@Label()を使えば設定できます。

<rule match="List-Id">
 <apply macro="@Label(List-Id)"/>
</rule>

とすると、List-IdがついているメッセージにそのIdをラベルとして設定することができます。

[Q3] 複数のルール適用

ラベルやフラグの設定をルールで行うようにすると、そこでルールの適用を中断せずにそのまま実行を続けて欲しい場面がありますね。

<!-- ラベルを付ける -->
<rule match="List-Id">
 <apply macro="@Label(List-Id)"/>
</rule>
<!-- 別のラベルを付ける -->
<rule match="@Contain(%From, '@example.org')>
 <!--
   これだと前のラベルが消えてしまうので
   本当は既にラベルがあったらつなげる処理が必要
 -->
 <apply macro="@Label('foo')"/>
</rule>
<!-- フラグを立てる -->
<rule match="@Contain(%Subject, 'QMAIL')">
 <apply macro="@Marked(@True())"/>
</rule>

今だと最初のルールにマッチしてしまうとそこで実行が終わってしまうのでいまいちです。

[]