ページを選択

ストブロ

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

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

 

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

 

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

 

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

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

AG03とOBSを使った実用的な1人配信構成

YAMAHAのAG03はオーディオインターフェースとして使えるミキサーで、Youtube Liveを初め配信界隈では相当の普及をして居るデバイスです。...

Youtube LiveをPodcastに再配信する

これまただうさん向けの内容です。一定の需要があると思うので記事化しました。是非参考にしてみてください。 https://youtu.be/GcgdUdE0ewo Youtube Liveで「COHIRAJI」というラジオ配信をしています。...

COHIRAJIのOBS設定のご紹介

基本的にはだうさん個人にお知らせする為だけに記事を書いてます(笑)もったいないので同じような事をしたいと思っている方のお役に立てればと思って記事にする事にしました。 ここで紹介するのはOBSの設定です。...

fmlで自動応答を実現する その2

前回までは「Recieved」という固定したファイルの中身で自動応答する事が出来ました。文中に件名にも付与した「受付番号」を挿入したい…という事でまたしてもヤンマさんにヒントを貰いながら、トライ&エラー 無事に完成しました!...

fmlで自動応答を実現する

さくらのレンタルサーバーでメーリングリストを使用していますが、fmlというものが使用されています。 今回は「メールを送ってくれたら、送信者に受付番号を自動応答したい」という希望で色々調べたり、教えて貰ったりしました。...

Webalizerを再集計する

音声データを配信しているVPSのサーバーをやむなくSSL化した。すると、そこからWebalaizer(アクスセス解析機能)に正しくログが取れていない状態だった。気がついたのは約2ヶ月後(笑)普段あまり見ていないので。...

DIVI Builder で PageSpeed Insights を改善する

Googleの「PageSpeed Insights」はウェブサイトの表示速度を評価して、改善する為の検査ツールですが、評価内容が多岐にわたり中々スコアが上げられない感じになります。色々取り組みしているのを備忘録的に。...

さくらのVPSのSSL証明を自動更新

さくらのVPSでポッドキャストの配信を行っているが、これまではSSLを取得せずに放置してきた。そしたらGoogle先生が怒って、ウェブ上での再生が出来なくなりました(笑)と言うことでLet's Encyptを使用してSSL証明を取得しまし。...

0コメント


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

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

開催のお知らせ

詳細はこちら

国際ポッドキャストの日

International Podcast Day Event

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

まとめファンサイト