ページを選択

ストブロ

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

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

 

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

 

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

 

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

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

今日は収録の予定・・・

今日は電器屋Walker収録の予定日です。 今回もとりあえず少人数でやるつもり・・・ 今日の話題は、盛り上がりが少ないかも?w それよりもRUSEをしたい!w あ、出張の準備もしなきゃ(/ω\) イヤン 慌ただしい一日になりそうです♪...

去年の今頃。

去年の今頃、何をしていたかな?とブログを振り返ると・・・ iPadをゲットしていた頃でしたw そういえば東京出張と重なって、Mさん宅へ送って貰ったiPadを秋葉原のガンダムカフェで受け取りましたw あれから一年かぁ。...

ビジネスバッグを選べない

最近、ビジネスバッグを新調したいと考えているんですが・・・ どうにも、こう・・・ぴんとくるものがないんですよね(´・ω・`) どのタイプも一長一短。 値段も品質もピンキリ。 はてさてどうしたものか。 大別すると 「ナイロン系素材」 「革素材」...

50万ダウンロード!

おはようございます。 数える事38回の配信をして参りました電器屋Walkerですが、 この度2011年5月までの統計で50万ダウンロードを突破しました(^o^)丿 これも皆様の「飽きずに、諦めずに」ご愛顧頂いたお陰でございます(/_;)ぶわっ...

既に9000DL

6月2日の夜に配信を開始した電器屋Walker第38回「電器屋Walker流液晶テレビの選び方2011」が1週間で既に9000ダウンロードを超えました。 INSTで配信しているものの中では比較的早いほうですね!...

睡眠の善し悪し。

おはようございます。 最近よく眠れていますか? 悩み事とか心配事とかあると、どうしても寝付きが悪かったり、夢見が良くなかったり。 日の出も早くなっていますから日光で目を覚ましたり。 暑苦しくて起きてしまったり?...

政情不安と経済

一言で切り取れる問題じゃないし、複雑な要因が絡み合っている事等を理解した上で 敢えて誤解を恐れずに、しかも極めて偏った発言ですが・・・ 経済の活性化、社会基盤の整備・整理、それに加えて自然災害からの復興。 そのすべてがうまく行っていない、駄目駄目の状態。...

つーゆー

全国的にも梅雨入りしているところが増えているようですね。 ちょっと前までとても肌寒い感じでしたが、 あっと言う間に暑くなって、あっと言う間に梅雨に入った気がします。 先日ようやく電器屋Walkerを配信させて頂きました。...

やっとこさ

昨日ようやく電器屋Walker配信しました! 今回は独断と偏見のテレビの買い。 いきなりアクオスとレグザが落選という暴挙でしたが(^^;) まぁ、話半分で聞いて下さいまし。 今回は収録と編集の負担をいかに軽減するか!?が課題でした。...

Ni Do Ne

二度寝しそうになったw なんとかギリギリのタイミングで復活して会社に間に合いました。 いやいや、会社はいつんも余裕があるように時間とってあるんだけどね。 ってことで、今日は時間がないのでこの辺で( ・`ω・´)キリッ...

産みの苦しみ

・・・昨日。 電器屋Walker収録しましたw いやー、続けてないとしゃべりも質が下がりますね(=_=) しかも今年はいろいろなものの「短時間化」を画策しているので、 その分の焦りも出ましたw...

Call of Party

昨日は久しぶりにみんなで集まってコールオブデューティー・モダンウォーフェア2 (CoD MW2)を楽しみました! PSNがサービス停止中だったので1ヶ月以上オンライン出来ませんでしたが、 やっぱり楽しいゲームはいつ遊んでも楽しいなぁ( ^o^)ノ...

0コメント


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

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

開催のお知らせ

詳細はこちら

国際ポッドキャストの日

International Podcast Day Event

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

まとめファンサイト