父: いやあ、いらないメールがいっぱい来て困るよ。 子(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」でも良い。 実際には私はそうしている。これで迷惑なメールを見ないですむ。