スパムメールを削除する

弊社、自社サイトをさくらインターネットのレンタルサーバー上に置いていて、ついでにメールサービスも使ってる。

サイトもメールも独自ドメインでの運用だ。

本当はMicrosoft 365に移行するのがいいんだろうけれど、ちょっとどうしていいかわからない。

メールサーバーの容量制限を超えた

先日、とあるユーザーからメールの送受信ができないとの問合せがきた。どうやらメール使用量が容量制限を超えたようだ。弊社では基本、ひとりあたり512MBのメール容量を割り当てている。

Outlookで受信していてメール一覧が全く見えなくなったらしい。POP3だからローカルに落ちていそうなものだが、本人がそう言っているのだからそうなんだろう。

さくらインターネットはWebメールが使えるので、とりあえず受信メールはそちらで見るように指示したら、スパムメールが大量に溜まっているのが見つかった。

それらを削除すると空き容量ができてメール送受信ができるようになった。

スパムメールの容量を調べてみた

これはほかのユーザーも似たような状況かもしれない。スパムメールは自動削除されないので、どんどん溜まって容量を食い続けるのだ。

スパムメールは~/MailBox/ユーザー名/maildir/.spamディレクトリの中にある。duコマンドで1MB超のユーザーを抽出してみた。

$ du -sh /home/directory/MailBox/*/maildir/.spam | cut -d '/' -f 1,5 | grep -e 'M' 2.8M /******** 5.1M /********* 28M /**** 3.3M /***** 1.4M /****** 3.1M /*********** 32M /*********** 97M /********* 111M /********** 8.1M /********* 48M /********* 3.6M /******** 117M /***** 88M /******** 1.2M /********* 17M /****** 7.2M /*********** 2M /******* 41M /********* 1.6M /******* 3.6M /******** 9.2M /****** 63M /******* 1.2M /*********
Code language: Shell Session (shell)

これはひどい。

まあ、海外相手だったり社歴が長かったりすると溜まりがちではあるけれど。

スパムメールは自動削除だ

いちおうメール設定にブラックリストの設定があったので、メールヘッダを調べてみた。

$ for n in `find MailBox/*/maildir/.spam/new/ -mtime +30 | grep -v '\/$'`;do grep $n -e '^From:' | grep -e '@' | sed -e 's/[^<]*\<\([^>]*\)\>.*/\1/';done | sort | uniq -c | sort -n | tail
Code language: Shell Session (shell)

なんと一位はinfo@au.com。

これはアドレス偽装だな。仕方がないのでブラックリスト設定は諦めて、毎朝3時に30日以前のスパムメールをcronで削除することにした。

$ crontab -l 0 3 * * * for n in `/usr/bin/find /home/directory/MailBox/*/maildir/.spam/new/ -mtime +30 | /usr/bin/grep -v '\/$'`;do rm $n;done 5 3 * * * for n in `/usr/bin/find /home/directory/MailBox/*/maildir/.spam/cur/ -mtime +30 | /usr/bin/grep -v '\/$'`;do rm $n;done
Code language: Shell Session (shell)

ま、こんなもんでいいか。

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments