プロセルピナ
Top Internet
Mail
Private
Proxy
Capture
Device
Download Config
and
Words
Online
Help
Online
Home
[BACK]
Top > Mail > Filtering > Commands > From.isAddressBooked

 
Filtering Command
From.isAddressBookedコマンド
Mail Filter
Top | Menu | IpBlacklist | Bayesian | Edit | Commands   


 
【記述例 1】  (移動: dir= の指定にフォルダ名メタ定義を含む例)
  if From.isAddressBooked("addr") move dir="{{GTMAIL_HOME}}\\mBox\\MyFriends"
(注:実際には折り返さず 一行で記述します)

 
【記述例 2】  (移動:フォルダ名メタ定義を含まない例)
  if From.isAddressBooked("addr") move dir="C:\\received\\MyFriends"

 
【記述例 3】  (フラグを立てる)
  if From.isAddressBooked("addr") flag


 
発信者のメールアドレス(メールヘッダのFrom:行のアドレス)が 「プロセルピナ」のアドレス帳に登録されている場合に 指定の処理を行います。
フィルタエディタからは、 [From(発信アドレス)]ボタンを押し、 開いた振り分け設定フォームの2つ目のセレクタから、 「アドレス帳に登録済みの場合」を選択します。

 
 
メールヘッダのFrom:行の コメント部分は対象ではありません。
例えば 次のFrom:行は全て同じメールアドレス(foo@mail.example.com)になります。

  (1) From: foo@mail.example.com
  (2) From: foo@mail.example.com (Mac'ra Mori)
  (3) From: Mac Mori <foo@mail.example.com>

From.isAddressBookedコマンドは このメールアドレス foo@mail.example.com をアドレス帳から探します。 一致するアドレスが登録されているかどうかで判断するので、 foo@mail.example.comが 違う名前で登録されていても登録ありになります。

 

 
上記の【記述例 1】では、メールアドレスがアドレス帳に登録されていた場合に、 メールを {{GTMAIL_HOME}}\mBox\MyFriends のフォルダに移動しています。

上記の【記述例 2】では、メールアドレスがアドレス帳に登録されていた場合に、 メールを C:\received\MyFriends のフォルダに移動しています。

上記の【記述例 3】では、メールアドレスがアドレス帳に登録されていた場合に、 メールのフラグを立てています。


 

応用例 1


フィリピン(略称で"PH")から発信または経由したメールは全て、 F:\GTmail\ゴミ\フィリピン のフォルダに移動する。 ただし、Fromヘッダのメールアドレスがアドレス帳に登録されている場合は、 その判定をスキップする。

 
if From.isAddressBooked("addr") Jump:Safe
if IpList.via("PH") move dir="F:\GTmail\ゴミ\フィリピン"
:Safe

 
Fig.1: 応用例1

Refer  IpList.viaコマンド
メールがどの国から発信されたか、また経由したかは
  IpList.via("○○")
で判定することができます。


 

【補足】 isAddressBooked


isAddressBookedは、直前の文字列に対してメソッドのように機能します (これは Contains, Equals, StartsWith などでも同じです)。
実際には殆ど使用することは無い例ですが、 メールの「件名」が アドレス帳にメールアドレスとして登録されているかどうかをチェックするには、 次のように記述します。

 
if Subject.isAddressBooked("addr") flag

 
「件名」がアドレス帳のメールアドレス欄にある場合にフラグを立てる


isAddressBookedは、 Str[ ] の文字列変数に対しても機能します (これも Contains, Equals, StartsWith などの場合でも同じです)。
次の2行は、 「if From.isAddressBooked("addr") flag」 と同じ処理を行います。

 
* Str[0]=From
if Str[0].isAddressBooked("addr") flag

 
Str[0]が アドレス帳のメールアドレス欄にある場合にフラグを立てる


isAddressBooked("addr")の、 "addr" の部分は、アドレス帳の addrフィールド を参照することを意味しています。
addrフィールドにはメールアドレスが登録されています。
アドレス帳にはこの他に、 nameフィールド、 memoフィールド などがあり、isAddressBooked("~")の書式で それらを参照し、一致するかどうかを判定することが可能です。

次の例は、FromNameがアドレス帳のnameフィールドに登録されているかどうかをチェックし、 登録がある場合にフラグを立てます。
(FromNameはメールヘッダのFrom行に記載されたメールアドレス以外の部分を参照する定義です)

 
if FromName.isAddressBooked("name") flag

 
差出人の名前が アドレス帳にある場合にフラグを立てる

FromNameで参照されるメールの差出人名には、表記の揺らぎがあることに注意してください。 例えば、アドレス帳に「松本芹香」の名前が登録されていた場合でも、 差出人名が「松本 芹香」であれば検出されません。
この場合、 Trim() や Replace⇒() を使うことで、多少の揺らぎは吸収することができます。
次の例では、FromNameで参照できる差出人名の両端から " を削除し、 間に含まれる全角スペース、半角スペースを削除したものを Str[1]の文字列変数に設定してから アドレス帳のnameフィールドとのマッチングを行っています。

 
* Str[1]=FromName.Trim("\"")
* Str[1]=Str[1].Replace⇒(" ⇒")
* Str[1]=Str[1].Replace⇒(" ⇒")
if Str[1].isAddressBooked("name") flag

 
差出人の名前が アドレス帳にある場合にフラグを立てる

【補足】 string.Replace⇒("")
文字列string に含まれる の文字列を全て に置換。 を削除するだけの場合はを省略して
  string.Replace⇒("")
と記述。
[BACK]
プロセルピナ