ページを選択

ストブロ

Coffee's Blog.

第16回「maildrop、mailfilterによるメール振り分け 完成版」

執筆者 | 2015年03月15日 | ストブロ

これまでも「レンサバ迷惑メール対策」 や 「迷惑メール対策 後編」 等でさくらインターネットを初め多くのレンタルサーバーのメールシステムで採用されているであろう「maildrop、mailfilter」によるメール振り分けについてご紹介してきましたが、今回はその後の検証も踏まえて一応の完成版という事でご紹介します。

 

pop3やimap4で使えるメール振り分けの方法としてご興味がありましたらご覧下さい。

ポッドキャストでもご説明をしておりますので、合せてお楽しみ下さい。

※メールシステムは間違えると届かなくなったりします、慎重な作業をお願いします。

作業は全て自己責任でお願いします。

 

今回は基本的にimap4でメールを利用する場合のご説明になります。

pop3の場合は振り分けたメールはウェブメールで確認する事が出来ます。

 

1)imap4でこんな感じになります。

maildrop01

実際に私が使用しているメーラー(現在はWindows Live mail 2012)の様子です。

赤枠で囲まれた所がメール振り分け先のフォルダです。

目的により名称は任意に設定する事ができますが、作業性を考えるとアルファベットのフォルダ名が良いでしょう。

 

maildrop02

振り分けられたメールを見てみましょう。

振り分けの「命令」及び「辞書」によりヒットしたメールはそれぞれのフォルダに自動的に格納されます。

 

 

2)設定する場所を確認

さくらインターネットのレンタルサーバーサービスにお馴染み「WinSCP」でログインすると、公開しているデータ以外にも確認する事が出来るデータが色々あります。

その中でしたの写真の通りMailBoxというフォルダがあります。

maildrop03

これが今回作業を行うフォルダです。

フォルダの中はこんな感じになっています。

maildrop04

・・・分からないですよね(゚_゚;) スミマセン、全部伏せ字なので。

本来はメールアカウント(@より前側)と同じ名前のフォルダが並びます。

1つ1つがそれぞれメールアカウントという事になります。

 

更にその中の一つに入ってみましょう。

maildrop05

人により内容は違ってきますが、「maildir」等を含むいくつかのフォルダとファイルがあります。

上の図では既に今回のメール振り分け機能に欠かせないファイルがいくつも追加されています。

詳細は後程。

 

更に「maildir」に入ってみましょう。

maildrop06

ここがメールボックス内のフォルダの一覧になります。

伏せ字の部分は私が独自に追加しているフォルダです。特別な機能では無く、メーラーやウェブメール上で追加した普通のフォルダです。

赤枠内が今回使用する振り分けフォルダです。

みなさんのメールフォルダにはまだ赤枠のフォルダがないはずです。

後程作りますので確認が出来たらOKです。

 

3)振り分け先のフォルダを作る。

さて、具体的な作業に入っていきます。

まずは振り分け先のフォルダを作りましょう。

imap4であればメーラーからも同等の作業ができますが、ここは念のためウェブメーラーから作業を行います。

webmail01

さくらインターネットのウェブメーラーの画面です。

下の赤枠のフォルダを作ります。

メニュー内の「フォルダ」をクリックします。

webmail02

「最上位にフォルダを作成」をクリックするとフォルダ名を入力する小窓が表示されます。

そこに任意の名前を入力すればOKです。

ここでは英数字で4つのフォルダを作ります。

 

※新しいフォルダとメーラー上のフォルダの同期について

私はWindwosLiveMail2012を作っていますが、ウェブメーラー上で新しいフォルダを作ったら、LiveMailで再度フォルダの設定(なんと表現すれば良いのか悩みますが)が必要でした。

メーラーにより違うのかも知れませんが、フォルダは間違いなく出来ていますので試行錯誤してみて下さい。

 

4)whitelist、blcokaddrの中身を確認する。

次にホワイトリストとブロックリストの中身を確認します。

maildrop07

こちらは私のホワイトリストです。

今回設定するmailfilterのプログラムでは「ホワイトリストに入っているものは、とにかくそのまま受信!」としているので、可能であれば日常メールのやりとりをする人を片っ端から登録しておくと安心です。

登録しなくても、特に問題はありません。

後程、メールフィルタの動作確認などありますので、通常は自分のドメイン、メールアドレスを登録しないでおいて下さい。

※振り分けに反応するキーワードを含む可能性があるが、振り分けたくないメールアドレスが発生したらホワイトリストに登録してください。

 

maildrop08

こちらはブロックアドレスです。

mailfilterでの振り分けをする前の迷惑メール対策を行っていたのでこんなに登録されていますが、みなさんは基本的に登録する必要はないと思います。

ブロックリストで出来るメールの拒絶は限界があります(アドレスがドンドン変るので)

 

ここでは、ある程度ホワイトリストの確認が出来ればOKとします。

 

5)辞書ファイルを作成する。

つづいて、メール振り分けを行う為のキーワードファイルを作ります。

仮に辞書ファイルと呼んでいますが、このキーワードにヒットしたメールに対し、指定した振り分けを行う事になります。

5-1).blockfrom

先程確認した「ホワイトリスト」をコピーしてファイル名を変更しましょう。

A)まずは「.blockfrom」とします。ファイル名の前のピリオドを忘れないで下さい。

B)次に一度ローカル(パソコン)へダウンロードします。ファイルのエンコード設定を変更する為です。

C)ダウンロードしてきたら「Terapad(テラパッド)」等のエディタで開きます。

D)「文字/改行コード指定保存」で文字コードを「UTF-8N」、改行コードを「CR+LF」にして保存します。

maildrop-terapad

E)再度アップロードします。

 

これで辞書ファイルの準備が整いました。

WinSCPでサーバー上の「.blockfrom」を開いてみましょう。

maildrop-moji

日本語が入力されていると必ずこういう風に文字化けします。

(英語だけの時は文字化けしていないように見えるかも知れません。)

※編集する前に、必ず赤枠の「エンコード」をクリックし、「UTF-8」に変更して下さい。

 

ちなみに、エンコードを変更せずに編集するとファイルが破損し開けなくなりますので厳重注意です。

 

「.blockfrom」はメールの「差出人」に対してマッチングを行う辞書ファイルです。

私が現状使用しているファイルがこちらです。

maildrop10

赤枠で示すとおり行頭に「#」を入力するとコメントして取り扱い出来ます。

1キーワード 1行で記入をしていきますが、正規表現が使用可能です。

赤字で示したとおり、様々なキーワードの組み合わせが使用できます。

 

一般名詞だけのキーワードは誤判定率があがるので、出来るだけ複数の単語や文章を組み合わせたものにしましょう。

原則としては既に受信済みのメールの件名を見て、そこからキーワードを抽出し、登録して下さい。

5-2).blockword

「.blockword」は「件名」に対してマッチングを行う辞書ファイルです。

ここでは英語のみの登録をしています。

5-1で行った「エンコードの変換」は不要になります。

A)ホワイトリストをコピー

B)名称を「.blockword」に変更

コレで完了です。

maildrop11

正規表現が使用できるのはどの辞書ファイルも一緒です。

色々工夫してみて下さい。

 

5-3).blockwordutf8

「.blockwordutf8」は「件名」に対してマッチングを行う辞書ファイルです。

「.blockword」との違いは「日本語のマッチングを行っている」という点です。

ファイルの準備方法は5-1と同様です。

エンコードの切替も忘れずに。

maildrop12

辞書ファイルは最初から豊富なキーワードを用意すると失敗の原因にもなるので、少しずつ増やしてみて下さい。

 

6)振り分け命令ファイルを設定する。

さて、いよいよ振り分けの命令プログラムを導入します。

もう少しですので頑張りましょう!

「.mailfilter」はもともとサーバー側で用意されています。

開いてみると「ホワイトリスト」と「迷惑メール判定」程度の命令文が記入されていると思います。

maildrop09

コーヒーが長い時間掛けてあれこれ研究した結果辿り着いたmailfilterの判定プログラムがこちらです。

公開するかどうか随分悩みましたが皆さんのお役に立てればと思い公開を決意しました。

コピペしてもらって、ご自身の環境にあわせて修正すれば使用できると思います。

mailfilter.txtはこちら
ダウンロードして中身をエディタ等で開いて下さい。

WinSCPのエディタで既存の「.mailfilter」ファイルにコピペしたら、余計なスペースが無いか確認して下さい。

タブ等は見やすいように修正して下さい。

詳しくは画像に記入した通りですが、ポイントは青枠。

青枠内の処理は「ホワイトリストにアドレスがなければ実行するプログラム」になっています。

その為、ホワイトリストにアドレスがあれば、全て無視して受信されます。

 

7)テスト用のダミーメールを作成する。

さぁ、これで無事に設定が出来た!はずです(笑)

maildrop、mailfilterの振り分けは何かが間違っていると処理が中断し、ずーーーとメールが受信されないままたまり続けます。

非常にまずい状態になりますので、十分な確認が必要になります。

 

そこで行うのが動作確認です。

mailfilter等があるフォルダ内に、ダミーメールを用意します。

maildrop15

これが私が使用しているダミーメールの一つです。

名称は「spam.eml」

文字エンコードは「shift-jis」

改行コードは「CR+LF」です。

 

このファイルはメーラーを使用して作成します。

受信したメールを何でも良いので一つ選んで「エクスポート」や「保存」で「eml形式」のファイルにします。

「Terapad(テラパッド)」で開き、一部内容を修正していきます。

メールには1通1通個別のIDが振り当てられていますが、そういう特定できるようなものは全て削除しても大丈夫です。

あるいは「0000coffee0000」見たいにダミーのIDを設定しても良いかも知れません。

迷惑メールの判定には影響しないので問題ないです。

 

逆に、「From:」や「Subject:」そしてメール本文(文章の部分)が大事になりますのでそこは残しておきましょう。

メールアドレスは念のため、全て自分のアドレスに変更しておいて下さい。

 

用意するダミーファイルは2つ。

一つは「全ての処理を通過する、マッチングするキーワードを持たないファイル」

もう一つは「FromやSubjectにマッチングするキーワードを持つファイル」です。

キーワードはFromとSubjectの両方で実行するので、From用のダミーファイルとSubject用のダミーファイルを別々に用意しても良いかも知れません。

8)テストをする。

maildrop-winscp

テストはWinSCPで行います。

赤枠のボタンを押してコンソール画面を開きます。

 

maildrop18

上のコマンド入力欄に

「 maildrop -V 9 .mailfilter < spam.eml 」

と入力します。

これが「メールドロップでmailfilterを使用してspam.emlを処理してね!」という命令文です。

状況に応じてspam.emlの名前を変えて実行します。

 

maildrop17

上の写真は全てのマッチングが終わったリザルトです。

赤枠の中に(38)とか書いてますが、これが私のプログラムが最後まで走りきった状態です。

命令文を変えるとこの数字も変ります。

最後に「maildrop unable to open mailbox」と表示されます。

これは「メールドロップはメールボックスを開けなかった(配達できなかったよ!)」という意味です。

このプログラムでは全てのマッチングを通過したメールを届ける先を指定していません。

なので、エラーとして表示されます(配達はされるので問題ありません)

 

maildrop18

再登場したこの写真はキーワードにマッチした状態で終了した場合です。

「Delivery complete」と表示されているのは「マッチングするキーワードが存在した」為に「指定されたフォルダに振り分けた」という事です。

 

上の二回を確認出来たら実際にメールを送って実験してみましょう。

自分のアドレスから自分のアドレスに宛てて、キーワードを含む/含まないファイルを送ってみると正常に動作しているのが確認出来ると思います。

 

長い間お疲れ様です、これで作業は完了です。

 

9)コーヒー版メール振り分けの考え方。

私の制御プログラムは基本的に「全てのメールは一度受信する」という方針で作られています。

100%自信を持って不要な場合は受信もせずに拒絶したりも出来るのですが、万が一という事もあるので。

後はご自身の希望によってプログラムを修正してご活用頂ければと思います。

 

また、辞書ファイルは徐々に鍛えていくものなので、気長に付き合って下さい。

 

最後に繰り返しになりますが、誤動作しないように十分に注意しながら作業を進めて下さい。

 

もし、「よりよい制御プログラムが出来た」等と言う場合はコヒ蔵にも教えて頂けると嬉しいです。

不明な点は私が答えられる範囲内でしたらお答えしますのでコメント欄やメールフォームからお問い合わせ下さい。

WordPress修行中

ワードプレスってご存知ですか? ええ、これですw このブログもワードプレスというシステムで動いています。 こんにちは、桂 コヒ蔵です(^o^)丿~♪ いま、やりたいことがあってワードプレスのお勉強中。 どうすれば、どこに、何が表示されるのか。...

ま、まだ木曜日なのかΣ(゚д゚;)

ご機嫌如何ですか? カリスマ読者モデル 桂 コヒ蔵です(^o^)丿~♪ ・・・少しくらいネタかましてから自称せよってねww ネタが思いつきません(「・ω・)「 奥様聞きました? 今日はまだ木曜日ですのよ!?...

iPhonegrapherをもっと楽しく♪

ご機嫌如何ですか? 「iPhonegrapher」のスペルが正しく掛けない 桂 コヒ蔵です。 文字数多いよ・・・w さて、レイアウト変更で皆様の目にも留まりやすくなったかな?と思います。 アイフォングラファーですが、ご覧頂いておりますか?...

勢いで作業しました!

ご機嫌如何ですか? 春は曙、武蔵丸。 桂 コヒ蔵です(^o^)丿~♪ 昨日のブログでちらとお話しておりました、INST-webのデザイン調整。 本当は編集作業をするつもりでパソコンの前に座りましたが、 Photo of This...

鋭意編集中です(^o^)丿

現在次回配信分の電器屋Walkerを鋭意えいえい編集中です(^^ゞ 昨日、電気屋さんに言っていろいろ調査をしてきましたが・・・ あれこれ熱いですね! ツイッターや前回のブログ内で記事を募集させて頂いておりましたので、...

デザイン会議

みなさん、ご機嫌如何ですか? 編集作業がいっこうに進まない、桂 コヒ蔵です(^o^)丿~♪ 昨晩はTaiji君からINST-webのデザイン変更の申し出があり打合せを行いました。 正確にはレイアウトの変更かな?...

編集編集(「・ω・)「

みなさんご機嫌如何ですか? 敏腕プロデューサーの 桂 コヒ蔵です。 関係ありませんが、顔文字って太文字にすると可愛いですね。 (「・ω・)「 ・・・そうでもないねww 万年不登校ポッドキャスト電器屋Walkerは定期配信が実現しませんw...

この辺が・・・

おはよう御座います。 当たって砕けろレポーターの桂 コヒ蔵です(^o^)丿~♪ 正直いうと、長期休暇明けのこの頃が最も連休中の疲れが出る頃ではないでしょうか?w 私は「疲れ」という程の事はないのですが、眠いです(´・ω・`)...

「#INSTTaiji 中国土産、これでおねがい」キャンペーン。

#INSTTaiji (ハッシュタグ入力時は前後に半角スペースを忘れずに) フェアウェルTaiji君企画第3弾(最終回)は 「中国に行ったら買ってきて欲しいお土産」 の募集です。 Taiji君に中国で買ってきて欲しいものをおねだりしちゃいましょうww...

お盆 is Over!

お盆イズオーバー~♪ 悲しいけれど~♪ お盆が終わってしまいました、桂 コヒ蔵です(^o^)丿~♪ 休まない、休みが取れない、休んだ気がしないと 休日、休暇が取れない我々日本人ですが、皆様は有意義なお盆休みを取ることが出来ましたでしょうか?...

熱湯、お盆ダイジェスト

みなさん、ご機嫌いかがですか? 熱湯・甲子園のお時間です。 ・・・ 実況)とりあえず、お盆休み前半戦を振り返ってみましょう。 12日 表:実家で無線LANの設備を整えてあげた。 姪っ子達に絡まれた。プリキュアについての講義を拝聴する。...

私とセンスと足りないもの。

ご機嫌如何ですか? クリエイティブディレクターの桂 コヒ蔵です(^o^)丿~♪ 私には美的センスが足りません。 まぁ、見ることは出来ても 作り出すことが出来ないのです。 美的センス、デザインセンスと言うよりも テクニックや技術力のような気もしますが。...

0コメント


電器屋Walkerの過去配信のBGMで利用させて頂いております。

ポッドキャスト品質向上、整音テクニック 解説Live

開催のお知らせ

詳細はこちら

国際ポッドキャストの日

International Podcast Day Event

ツキイチ - 隣のポッドキャスト

まとめファンサイト