プロセルピナ | ||||||||||
Top |
Internet |
Private Proxy |
Capture Device |
Download |
Config and Words |
Online Help |
Online Home |
|||
[BACK] | |||||||||||||
☞
Top >
Mail >
Filtering >
Commands >
Header
【記述例 1】 (移動) if Header("X-Month").Contains("ABCDEF") move dir="{{GTMAIL_HOME}}\\mBox\\other" (注:実際には折り返さず 一行で記述します) 【記述例 2】 (フラグを立てる) if Header("X-Priority").StartsWith("1") flag Headerコマンドは 指定されたヘッダの値を参照し、条件に一致する場合に指定された処理を行います。 フィルタエディタからは、 [その他のヘッダ]ボタンで設定します。 上記の【記述例 1】では、 メールにX-Monthのヘッダがあり、そのヘッダの値が ABCDEF を含んでいた場合に、メールを {{GTMAIL_HOME}}\mBox\other のフォルダに移動します。 (補足:完全一致で移動する場合は 「if Header("X-Month").Equals("ABCDEF") move dir="{{GTMAIL_HOME}}\\mBox\\other"」 となります) 上記の【記述例 2】では、 メールのX-Priorityヘッダ(Mozilla Thunderbirdなどで使用されている重要度の指定)の値が、 1 で開始される場合にフラグを立てます。 先頭文字で判断しているので(StartsWith)、値が1でも10でも同じようにフラグが立ちますが、 X-Priorityに指定される重要度の値は一桁の数値なので、この場合は問題なく処理できます。 逆に、Equalsを使った完全一致で1かどうかを判定すると、 X-Priority: 1 (Highest) といったコメント表記が後ろに含まれる場合に不一致と判定されてしまいます。 この場合では、正規表現を使った場合、よりスマートに解決できます。例えば 「 if Header("X-Priority").RegexIsMatch("1([ \\(]+|$)") flag 」 のような記述するとよいでしょう。 応用例 1サンプルとして用意されている「重要メール検出.txt」のメールフィルタです。 受信したメールのFromアドレスがアドレス帳に登録されていた場合で、かつ、 重要度が指定されているメールの件名を表示し、 そのメールのフラグを立てます。
【Refer】☞ From.isAddressBookedコマンド Fromヘッダのアドレス帳チェックは From.isAddressBooked("addr") で行うことができます。 【応用例1】の説明 4行目の「* State=Header("X-Priority").Length」で、State変数にX-Priorityヘッダの 文字列長(値の長さ) を設定しています。 X-Priorityヘッダが無い場合は1以下になるので、Endラベルにジャンプして終了します(5行目)。 6行目の「* State=Header("X-Priority")」で、State変数にX-Priorityヘッダの値を数値読みしたものを設定しています。 State変数は数値変数なので、Header("X-Priority") は文字列から数値に変換されます。 この際、数値として有効な部分のみが変換されるので、X-Priorityヘッダの記述が X-Priority: 1 の場合だけでなく、 X-Priority: 1 (Highest) であっても、同じように数値の 1 がState値に設定されます。 【Note】 優先度のヘッダ(X-Priorityヘッダ)の解析に関しては、 「メールフィルタからマクロを呼び出す」の説明で、 マクロを使用した やや複雑な方法を紹介しています。 等価なメタ定義 |
|||||||||||||
[BACK] | |||||||||||||
プロセルピナ |