2018年5月24日木曜日

.mailfilterを弄ってみる!(XServer)

副題:エックスサーバーをもっと便利に使い倒そう!【シリーズ4】

は、役立たずSAの代役として、メール振り分け機能をフル活用する方法についてお送りします。

前回は、大事な所で電池が切れちゃって、ご免なさい。
ではでは、早速本題に入りますよ~

【件名によるスパム判定】

ここでは、ドメイン共通設定となる『.filter』ファイルを編集して、
件名でスパム判定する方法を紹介するね。もちろん日本語にも完全対応!
(.filterの場所:"/home/サーバーID/ドメイン名/mail/")

■.filterの編集例1

if (`cat | grep Subject | nkf -mw` =~ /.*日本語の件名キーワード.*/)
{
    # 件名の先頭に"[Meiwaku] "を付加する
    xfilter "sed -e 's/^Subject: /Subject: \[Meiwaku\] /'"

    # 内部メールアドレスへ転送する
    to "/home/サーバーID/ドメイン名/mail/サブドメイン名/内部メールアドレス/"
}
# 文字コード:UTF-8N、改行コード:LF

[解説]

"日本語の件名キーワード"と一致する場合に、件名の先頭に"[Meiwaku] "を付加して、
指定された内部メールアドレスへ転送する例です。
バッククォート演算子『``』を使って、拾い出した件名にMIMEデコードを掛けて、
UTF-8Nコードへ変換してるとこが一番の肝であって味噌なんだよね!

また、本例では内部配送となるメールアドレスへ転送する場合を想定して、
Maildir形式のディレクトリ名で指定してみました。
レアな使い方だけど、この方が余計な処理も走らずにスマートな転送が可能だよ。
(【重要】変な副作用の不具合がある模様です。詳細は次回記事をご参照下さい。)
なお、外部のメールアドレスへ転送する場合は、素直に例2の様な一般的な方法でお願いねっ。

[豆知識]

話は脱線するけど、".mailfilter"、".alias"、".filter"、".header"や".spamassassin"等のファイル中
でのパス指定の方法がやや謎的に感じたので、ここで簡単に説明しておこうと思います。

絶対パス指定時の基準は、言わずと知れたルートディレクトリ"\"が基準です。
また、相対パス指定時の基準は、カレントディレクトリと相場は決まっています。
では、そのカレントは何処かと言うと、各メールアドレス毎に準備された".mailfilter"ファイル
が存在しているそれぞれのディレクトリが、フィルター実行時のカレントとなっています。

つまり、相対パス指定を行う場合は、
"/home/サーバーID/ドメイン名/mail/サブドメイン名/各メールアドレス/"
が基準となるので、そこからの相対でパスを指定すれば良い事になります。

なお、このカレントの基準は、ファイル配置が異なる".filter"や".header"でも同様です。
最終的には".mailfilter"でインクルードされてるだけなので、ちょっと考えれば分かるでしょ?


■.filterの編集例2

SUBJECT = `cat | grep Subject | nkf -mw` # 変数を使用する例
if (lookup($SUBJECT, "../../block_subject.dat")) # 相対パス指定の例
{
    # 件名の先頭に"[Meiwaku2] "を付加する
    xfilter "sed -e 's/^Subject: /Subject: \[Meiwaku2\] /'"

    # 外部メールアドレスへ転送する
    to "!転送先メールアドレス"
}

[解説]

件名が以下の"block_subject.dat"ファイル中の各行のキーワードの何れかと一致する場合に云々、と言うような判定処理となります。
(block_subject.datの場所:"/home/サーバーID/ドメイン名/mail/")

lookup関数を使う事で、複数の件名条件をスマートに指定可能となり、後々の保守性も抜群♪
当然ながら"block_subject.dat"のファイル名や配置場所も任意で変更が可能です。

[block_subject.datの内容]

#--- ここから ---
カード利用のお知らせ
あなたのApple IDのセキュリティ質問を再設定してください。
Apple IDアカウントを回復してください
【楽天市場】注文内容ご確認(自動配信メール)
■『FC2.』よりお知らせ※継続課金の停止の可否について
アカウント凍結による所有者特定措置行使【(株)エフシーツー】
注文書、請書及び請求書のご送付
#--- ここまで ---
# で始まる行は、コメントと見なされるよ。
# キーワードは、上から順に評価されるよ。
# キーワードには、正規表現も使えるよ。
# 文字コード:UTF-8N、改行コード:LF

次回は、本文編です。お楽しみにっ!

0 件のコメント:

コメントを投稿

タイトル設定の迷路に嵌る!(Blogger)

Bloggerのタイトル設定欄、目立たないって思わない? オイラは始めて数日間、まったく気付かず未設定のままだったよ!(恥ずかしぃ~ で、ふと気付いて設定しようとしたものの良く分からない。。。 ググってもヒットするのは、タイトルの表示方法の設定や、 どの様なタイトルを...