メールの振り分けにおける正規表現No.28010
さるご さん 06/07/08 19:06
 
自分のメールサーバーに届く直前のホストの表示が逆引きできなくて次のように([IP
アドレス])だけ表示されるメールは迷惑メールであることが多いので、これを振り分
けでスパム用のフォルダに振り分けようと考えています(正当なホストもわずかにこ
れに引っかかるので、そのホストのドメイン名を例外条件で救済する)。

実際には以下のような部分をヘッダに含むメールです(xxx.yyyのところは私の使っ
ているメールホスト名だとお考えください)。

--------------------
Received: from greensboronc.org ([59.93.40.110])
 by xxx.yyy.jp
--------------------

振り分けの設定で

Received: が
from .*\(\[[0-9]{1,3}(\.[0-9]{1,3}){3}\]\)\n.*by xxx.\.yyy\.jp
を含む/正規表現
→ スパム用フォルダに移動する

と設定したのですが、振り分けされません。

あまり正規表現を使い慣れていないので、何か書き間違えているのかとも思いました
が、「検索して一覧作成」で同じ条件で(むろん正規表現にチェックを入れて)Rece
ivedを検索するとちゃんと該当のメールがヒットします。

普通の検索での正規表現と振り分けのところの正規表現で何か解釈の違いがあるので
しょうか。分かる方がいたらお教えください。

ちなみに秀丸メールのバージョンは4.64です。

[ ]
RE:28010 メールの振り分けにおける正規表No.28012
さるご さん 06/07/08 21:34
 
すみません。以下の部分書き間違えました。
>from .*\(\[[0-9]{1,3}(\.[0-9]{1,3}){3}\]\)\n.*by xxx.\.yyy\.jp

正しくは、以下のとおりです。
from .*\(\[[0-9]{1,3}(\.[0-9]{1,3}){3}\]\)\n.*by xxx\.yyy\.jp

でもやっぱりだめです。

[ ]
RE:28012 メールの振り分けにおける正規表No.28016
秀まるお2 さん 06/07/09 16:12
 
 秀丸メール側の処理が少しおかしいようで、改行文字が「\n」でうまくヒット
しないようです。

 CR+LFの改行コードをLFのみに変換してマッチングさせないといけない所がそ
のままCR+LFでマッチングされてまして…。なので、とりあえずは\nと書くべき
所を\r\nと書けばマッチしてしまうようです。

 でもこれはよくないので、修正させていただきます。

 ってことで、とりあえず現状でなんとかするとしたら、改行の所は考えないで、
というか、そもそも正規表現も考えないで、

  "by xxx.yyy.jp" を含む

 って条件にしたらいいんじゃないかと思います。(素人考えですが)

[ ]
RE:28016 メールの振り分けにおける正規表No.28020
さるご さん 06/07/10 00:13
 
どうもご返答ありがとうございました。

> CR+LFの改行コードをLFのみに変換してマッチングさせないといけない所がそ
>のままCR+LFでマッチングされてまして…。なので、とりあえずは\nと書くべき
>所を\r\nと書けばマッチしてしまうようです。

とりあえず\r\nと書いて振り分けできました。しばらくはこれで対応したいと思いま
す。

> でもこれはよくないので、修正させていただきます。

できればお願いいたします。私のような素人にとっては、普通の検索での正規表現と
振り分けの正規表現が一致したほうが分かりやすいです。

>というか、そもそも正規表現も考えないで、
>
>  "by xxx.yyy.jp" を含む
>
> って条件にしたらいいんじゃないかと思います。(素人考えですが)

えっと、xxx.yyy.jp は私自身のメールサーバーのことなので、それだけを指定する
わけにはいかないんです。
自分自身のメールサーバーの直前の行に\(\[[0-9]{1,3}(\.[0-9]{1,3}){3,}\]\)とい
うパタンが入っているという条件にしたいわけですが、秀丸の正規表現では .* だけ
では改行が入っているとヒットないので、どうしても改行をしてやる必要があるわけ
です。

[ ]