サクラのレンタルサーバでメールを使用しているのですがスパムメールの多さに閉口してました。
サクラの非公式FAQでmaildropでメール配信を行っていて.mailfilterで細かい制御が出来るとの事。だが私にはそんな知識も技術もないので、とりあえずQAにあるフィルターでいろいろ試してみるがあまり効果は見られない。
結局対策は一つずつスパム認識をコツコツすることでした。
しかし久しぶりにググってみると、「サクラでスパムの一次フィルタリングしてみるテスツ。」というサイトが見つかりました。
サクラでは、
迷惑メールフィルタとは、迷惑メール(スパムメール)の疑いのあるメールを自動的にサーバ上で検知し受信箱ではなく迷惑メールフォルダに振り分ける機能です。
「さくらのレンタルサーバ」では迷惑メールフィルターに SpamAssassin を利用しており、迷惑メールを学習させることにより、より精度が高くなる学習型フィルターとしてご利用できます。
としていますが、その都度認識させてもただ増えるばかりで、誤認識もすこしあるようなので即削除とはできず迷惑フォルダーに保存するのでメールボックスが膨れ上がります。
「サクラでスパムの一次フィルタリングしてみるテスツ。」これでやってみると、なんと毎日50から100件あったものが、週に1件程度に減りました。現在は、いきなり削除せず、スパムと判定したらゴミ箱に振り分けています。
デフォルトのスパムフィルターではゴミ箱はありませんが、ウェブメールでメールの設定 - 迷惑メールフィルタでは
迷惑メールフィルタを利用しますか?
- 利用する
- 利用しない
迷惑メールを受信した時の動作を指定ください
- 「迷惑メール」フォルダに保存 (推奨)
- メールを破棄 (迷惑メールでないメールも破棄する恐れがあります)
- フィルタのみ利用 (メールヘッダに X-Spam-Flag: YES を追加)
迷惑メールをゴミ箱へは選べないのです。
そこで、.mailfilterを直接編集します。
if ( ! ( /^From:\s*(.*)/ && lookup( $MATCH1, ".whitelist" ) ) )
{
xfilter "/usr/local/bin/spamc"
}
if ( /^X-Spam-Flag:.*YES/ )
{
to "maildir/.spam/"
}
の赤文字を以下の赤文字に変えます。
if ( ! ( /^From:\s*(.*)/ && lookup( $MATCH1, ".whitelist" ) ) )
{
xfilter "/usr/local/bin/spamc"
}
if ( /^X-Spam-Flag:.*YES/ )
{
to "maildir/.Trash/"
}
設置方法
フィルタープログラムをダウンロード して解凍
解凍したらspamdelっていうフォルダが出来るのでそれをサーバーに転送(wwwディレクトリと同じ階層に)
例 /home/アカウント/spamdel
パーミッションを設定
spamdel 700 フォルダ
spamdel.pl 700 フィルタープログラム
spamdel.log 600 ログファイル
ログを残したい場合は、spamdel.plの14行目に自分のIDを指定して、106行目のコメントを取ってください。
sshでサーバーにアクセスしてターゲットのメールアドレスのディレクトリに移動します。(例:cd MailBox/メールアドレスのID)
(sshじゃなくてもFTPだけでも作業は可能だとおもわれる。 )
ターゲットのメールアドレスの「.mailfilter」に次のスプリクトを追加します。
if ( ! ( /^From: *!.*/ && lookup( $MATCH2, ".whitelist" ) ) && (1) )
{
xfilter "/home/アカウント/spamdel/spamdel.pl"
}
if ( /^X-Dnsbl-Status: Yes/ )
{
to "maildir/.Trash"
}
上記の場合スパムと判定されるとゴミ箱に送られます。
そのまま削除したい場合は「to "maildir/.Trash"」の部分を「exit」にします。
フィルタだけしたい場合(メールのヘッダに「X-Dnsbl-Status: Yes」が追加されます。)下記の部分を削除してください。
if ( /^X-Dnsbl-Status: Yes/ )
{
to "maildir/.Trash"
}
編集後の.mailfilter
if ( ! ( /^From:\s*(.*)/ && lookup( $MATCH1, ".whitelist" ) ) )
{
xfilter "/usr/local/bin/spamc"
}
if ( /^X-Spam-Flag:.*YES/ )
{
to "maildir/.Trash/"
}
if ( ! ( /^From: *!.*/ && lookup( $MATCH2, ".whitelist" ) ) && (1) )
{
xfilter "/home/アカウント/spamdel/spamdel.pl"
}
if ( /^X-Dnsbl-Status: Yes/ )
{
to "maildir/.Trash/"
}
設置完了
スパムメールと普通のメール流してみて上手く動いているかチェックして完了。
けいいちさん素晴らしいツールをありがとうございます




コメントする