一応書き込みNo.34261
秀まるお2 さん 08/06/18 11:43
 
 迷惑メールフィルターの作者さんへの連絡なんですけど、一応ここに書いてお
きますと…

 迷惑メールフィルターのFILTERAPITABLEに関数が1つ増えてます。

DWORD (_cdecl* GetSenderCountry)( char* pszHeader, DWORD* pdwIpOut );

 ってのが増えてます。これを使うとメールの発信元IPアドレスと発信国が分か
ります。

 もし詳細情報が必要でしたら僕に連絡ください。

[ ]
RE:34261 一応書き込みNo.34262
tuki さん 08/06/18 14:28
 
tuki です。

> 迷惑メールフィルターのFILTERAPITABLEに関数が1つ増えてます。
>
>DWORD (_cdecl* GetSenderCountry)( char* pszHeader, DWORD* pdwIpOut );
>
> ってのが増えてます。これを使うとメールの発信元IPアドレスと発信国が分か
>ります。

カーソルで選んだメールをマクロ「発信元IPアドレスと発信国」を実行すると
それが分かるように出来るのならばマクロを教えて下さいませんか。メールのプ
ロパティから多くを見るのは、少しめんどうですね。

宜しくお願いします。

[ ]
RE:34262 一応書き込みNo.34264
siniti さん 08/06/18 20:27
 
tukiさん

sinitiです。

>カーソルで選んだメールをマクロ「発信元IPアドレスと発信国」を実行すると
>それが分かるように出来るのならばマクロを教えて下さいませんか。メールのプ
>ロパティから多くを見るのは、少しめんどうですね。

確かにカーソルで選んだ(選択した複数の)メールの「発信元IPアドレスと発信国」
およびその迷惑メールと判断した内容「X-TuruKame-Filter: 」が一覧で表示される
マクロがあれば助かります。
どなたか提供いただけませんか?

[ ]
RE:34264 一応書き込みNo.34266
秀まるお2 さん 08/06/18 22:33
 
 発信元IPアドレスはReceived:ヘッダをマクロで解析すれば取り出せるには取
り出せますけど、かなり面倒です。また、国識別を取り出すのは、現状ではマク
ロでは無理です。

 ということで、それら用の関数を追加します。

   SenderCountry
   SenderIP

 の2つの関数を追加しようと思います。

 文字列で返すようにします。

 マクロとしては、

    loaddll "tkinfo.dll";
    $s = dllfuncstr("SenderCountry");
    message $s;

 てな具合になると思います。(仕様はまだ確定ではありませんけど)

[ ]
RE:34266 一応書き込みNo.34273
kahara さん 08/06/20 00:40
 
kaharaと申します。


> 発信元IPアドレスはReceived:ヘッダをマクロで解析すれば取り出せるには取
>り出せますけど、かなり面倒です。また、国識別を取り出すのは、現状ではマク
>ロでは無理です。
>
> ということで、それら用の関数を追加します。
>
>   SenderCountry
>   SenderIP

これらのご検討中のマクロ関数に関連して、

SenderIP2(パラメータ)
 パラメータ(数値型)
  IPアドレスが複数ある場合に、数値型で指定した順番のIP
  アドレスを取得する。
  0を指定すると一番最後に付与されたIPアドレス、1を指定
  するとその次・・・。
  (IPアドレスの数が変わる場合でも、パラメータで指定
   した位置関係が変わらないようなもの)
  指定した順番のIPアドレスが無い場合は、""。
というマクロと、

SenderCountry2(パラメータ)
 パラメータに、IPアドレスを指定すると、当該の国識別を
 取得する。
 (SenderIP2の出力を使うことを想定)

という2種類のマクロ関数を追加していただけないでしょうか?

[ ]
RE:34273 一応書き込みNo.34276
秀まるお2 さん 08/06/20 09:30
 
 当初考えた仕様と少し変更しました。

 GetSenderCountry
 GetSenderIP

 を追加しました。パラメータを省略すると現在のメールを対象とし、パラメー
タ1にヘッダ文字列を指定すると、そのヘッダから取得するという仕様にしまし
た。

> SenderIP2(パラメータ)

 これは、GetSenderIP関数にパラメータ追加したことで不要になったと思いま
す。

    $header = dllfuncstr("CurrentHeader2", "Received:", #index );
    $ip = dllfuncstr("GetSenderIP", $header );

 って風に簡単に実現出来ると思います。

> SenderCountry2(パラメータ)
>  パラメータに、IPアドレスを指定すると、当該の国識別を
>  取得する。


 これは、では追加しようと思います。名前はGetCountryFromIPとかそんな名前
にしようと思います。

 あとあと、ついでにですけど、AllCurrentHeader, SmallCurrentHeader関数も
追加しようと思います。(これは別に今回の件と関係無いですけど)

[ ]
RE:34276 一応書き込みNo.34277
秀まるお2 さん 08/06/20 09:53
 
> > SenderCountry2(パラメータ)

 やっぱりこれも別に無くていいようなのでやめときます。

 例えば$ipって変数にIPアドレスが入っているとしたら、

    $recv = "Received: from xxx [" + $ip + "] by yyy";
    $country = dllfuncstr("GetSenderCountry", $recv );

 って形で取得出来るので、それでいいと思います。

[ ]
RE:34277 一応書き込みNo.34284
kahara さん 08/06/21 01:01
 
kaharaと申します。

マクロコマンドへの仕様実装方法についてはお任せする前提で
現在検討いただいている仕様で、
・n番目の特定ヘッダの情報を取得する(既存)
・特定ヘッダのIPアドレスを取得する(新規)
(特定ヘッダとして情報を作り上げた後に)
・特定ヘッダ内のIPアドレスに相当する国識別情報を取得する(新規)

もしくは、
・n番目の特定ヘッダの情報を取得する(既存)
・特定ヘッダ内のIPアドレスに相当する国識別情報を取得する(新規)
という感じで、目的が達成できます。

よろしくお願いいたします。

後者のイメージとしては、n番目のReceived:ヘッダ内のIPアドレス
から導かれる国識別情報を得るために、

 $header = dllfuncstr("CurrentHeader2", "Received:", n-1 );
 $country = dllfuncstr("GetSenderCountry", $header );

という処理を思いうかべました。
もし間違って解釈しているようでしたらご指摘ください。

[ ]
RE:34284 一応書き込みNo.34287
秀まるお2 さん 08/06/23 09:03
 
 一応、僕の手元のバージョンで追加した関数で用は足りると思います。

>  $header = dllfuncstr("CurrentHeader2", "Received:", n-1 );
>  $country = dllfuncstr("GetSenderCountry", $header );

 そんな感じになると思います。

[ ]
RE:34287 一応書き込みNo.34293
kahara さん 08/06/23 21:20
 
kaharaと申します。

> 一応、僕の手元のバージョンで追加した関数で用は足りると思います。
>
>>  $header = dllfuncstr("CurrentHeader2", "Received:", n-1 );
>>  $country = dllfuncstr("GetSenderCountry", $header );
>
> そんな感じになると思います。

ご確認ありがとうございます。
ベータバージョンへのマクロ追加を楽しみにしています。

[ ]