«前の日記(2003年09月07日) 最新 次の日記(2003年09月09日)» 編集

Matzにっき


2003年09月08日 [長年日記]

_ Sobig.F(からのメール)を退治せよ

父: いやあ、いらないメールがいっぱい来て困るよ。
子(6歳男): だした人にいらないっていえば?
父: 出した人も知らないんだよね(以下、ウィルスについて説明)
子: じゃあどうするの?
父: 要らないメールだけ捨ててしまうプログラムを使ったんだ。

父: でも、これもまだ面倒で。自分でわざわざ捨てないといけないから
子: だったら、自動的に届かないようにできないの。
父: できるよ。今日、そうしようと思ってたんだ。

というわけで、フィルタを用意。 基本的にはsobig_killer.rbを削っただけなのでお手軽簡単。

#!/usr/bin/ruby

SOBIG_SUBJECTS = <<END.split("\n")
Thank you!
Re: Thank you!
Re: Details
Re: Re: My details
Your details
Re: Wicked screensaver
Re: That movie
Re: Your application
Your details
Re: Approved
END

SOBIG_SUBJECTS_R = Regexp.new('^(' + SOBIG_SUBJECTS.join('|') + ')$')

header = STDIN.gets("\n\n")
size = STDIN.read.size + header.size

exit 1 unless header =~ /Subject: (.*)\n/
subject = $1
if subject =~ /RAV AntiVirus scan results/
  exit 0
end

if (310000 < size  || size < 100000) and 
    not header =~ /^Content-type:\s*multipart\/mixed/i
  exit 1
end
if SOBIG_SUBJECTS_R =~ subject
  exit 0
end
exit 1

あとは、.procmailrcに以下のルールを追加する。

0HB:
* ? /usr/bin/ruby /home/matz/sobig_filter.rb
sobig

勇気があれば(?)、「sobig」の部分は「/dev/null」でも良い。 実際には私はそうしている。これで迷惑なメールを見ないですむ。


«前の日記(2003年09月07日) 最新 次の日記(2003年09月09日)» 編集