タイトルが無い迷惑メールが来るので
procmailで破棄しようと考えたのですがうまくいきません
お知恵を拝借したいのですが
:0
* ^Subject:
/dev/null
これですと、全て該当しまいうまくいきませんでした
それでスペースがあるものを破棄と思い
:0
* ^Subject:\s\s\s\s\s\s\s\s\s\s
/dev/null
これですと全然マッチせず
正規表現の質問になりますが
よろしくお願いします
> タイトルが無い迷惑メールが来るので
> procmailで破棄しようと考えたのですがうまくいきません
> お知恵を拝借したいのですが
> :0
> * ^Subject:
> /dev/null
>
> これですと、全て該当しまいうまくいきませんでした
> それでスペースがあるものを破棄と思い
>
> :0
> * ^Subject:\s\s\s\s\s\s\s\s\s\s
> /dev/null
>
> これですと全然マッチせず
> 正規表現の質問になりますが
> よろしくお願いします
正規表現って論理がわかりにくいですから、結構難しいですよね。
上記の設定では、両方とも結果のとおりになるはずです。
そこで、ここでは考え方を変え手上げないと、未来永劫うまくヒットするロジックは見つからないと思います。
ここでの考え方は、「タイトルのないメール(Subject: の後に何もないメール)を見つける」ではなく、「タイトルがあるメール(Subject: の後に何かがあるメール)以外のメール」という考え方に変えてあげればうまくヒットするはずです。具体的には下記のようにすればうまくいくと思います。
:0H
* !^Subject: *\/.*
/dev/null
ただ、いきなり/dev/nullはどうかと思いますが。うちの娘たちは、チャット的な携帯メールはほとんどタイトルなしで送ってきますから。
> :0H
> * !^Subject: *\/.*
> /dev/null
おやじさん どうもありがとうございます
何度も試してはいるのですがうまくいきません
* !^Subject:*\/.*
* !^Subject: *\/.*
*!^Subkect:*\/.*
*!^Subject: *\/.*
いずれもうまくいきませんでした
スペースも文字とみなしているんじゃないかと
気がしてきました
> > :0H
> > * !^Subject: *\/.*
> > /dev/null
> おやじさん どうもありがとうございます
> 何度も試してはいるのですがうまくいきません
>
> * !^Subject:*\/.*
> * !^Subject: *\/.*
> *!^Subkect:*\/.*
> *!^Subject: *\/.*
>
> いずれもうまくいきませんでした
> スペースも文字とみなしているんじゃないかと
> 気がしてきました
空白も文字ですから、それで正解ですよ。no-subjectのメールは何も入っていない(空白すら入っていない)のが普通ですから、おやじが書いたレシピ(analogさんの2番目)でヒットするはずです。
Subjectに空白が入ったスパムがきているならこれでは駄目なので、それは以下のようにすればヒットすると思います。つまり両方とも書いておく必要があります。
:0H
* ^Subject: \s+$
/dev/null
> :0H
> * ^Subject: \s+$
> /dev/null
ヒットしました
どうもありがとうございました