オープンソース

MTAとMilterによる外部連携

sendmailとPostfixでは、Milterと呼ばれるAPIが提供されています。Milterを利用して外部プログラムと連携し、メールの受信や配送を制御する機能を追加することで、より高度な迷惑メール・SPAMメール対策を行うことができます。この記事では、Milterの機能やMilterを利用しているOSSについて説明します。

Milterとは

Milterとは、「mail filter」の略で、sendmailが開発した外部プログラム用のAPIです。Milterは、sendmailのバージョン8.12から正式機能となっています。Milterはもともとsendmail専用の仕組みとして開発されました。その後sendmailに代わるMTAとしてPostfixが開発され、Postfixでもバージョン2.3からMilterプロトコルの一部のサポートを始め、現在に至ります。この実装により、PostfixではDKIM(DomainKeys Identified Mail)や迷惑メールフィルタリングなどの機能が拡張しやすくなっています。

Milter通信の仕組み

通信イメージ

Milterでは、SendmailなどのMTAが受信処理を行う際、SMTPプロトコル処理の各段階を外部のプログラムから制御することができます。このとき接続する外部プログラムをMilterアプリケーションと呼びます。Milterアプリケーションでは、起動時に各処理に対応したコールバック関数を設定します。そして、MTAとクライアントの間で行われるSMTP通信の各段階で、これらの関数が必要に応じて呼び出されます。つまり、MTAからクライアントへの応答に対して、Milterアプリケーションから制御を実行できる仕組みになっています。

例えば、SMTPで「MAIL FROM」コマンドにより、送信元情報がMTAに送られると、MTAはMilterアプリケーションにenvfrom_callbackを呼び出します。なお、処理の内容に応じて必要なコールバック関数だけを設定することができます。コールバック関数には、SMTP通信上で通知された情報が引数で渡されます。

Milterでできること

上記で解説したように、Milterアプリケーションとして第三のプログラムから別のプロセスで制御を行うことで、MTA側の受信処理に対しリアルタイムに介入することが可能となります。そのため、かなり高速で詳細な制御をすることができます。

そして、このMilterプログラムを利用して、メールにフィルタをかけることができます。フィルタの用途としては、スパム拒否、ウイルスフィルタリング、コンテンツ制御などがあります。また、一度に複数の機能を組み込むこともできるため、機能を組み合わせることで、より効果的なメールフィルタ機能を実現することができます。ただし、このような機能を活用するためには、利用者がSMTPのプロトコルを熟知している必要があります。

Milterは単なるAPIですので、このインタフェースを使用するためには、必要に応じてアプリケーションプログラムを作成する必要があります。sendmailの開発パッケージには、C言語でアプリケーションプログラムを作成するための開発環境が含まれています。これが、標準的な開発プラットフォームです。また、Milterアプリケーションを作成するためのperlモジュールであるSendmail::Milterが公開されているので、これを使ってプログラムを作成することが可能です。

Milterを利用したOSS

Milterは、OpenDKIM、ClamAVなど、多くのソフトウェアで使われています。また、以下のデージーネットが開発したソフトウェアでも利用されています。

SaMMA

SaMMA(SAfety Mail gateway with Milter Api)は、メールの添付ファイルを安全にやり取りするための、デージーネットが開発したオープンソースソフトウェアです。PostfixやSendmailといったメールサーバソフトウェアと、Milterのインタフェースを介して動作を実現しています。SaMMAは、受信したメールの添付ファイルを自動的にZIP暗号化したり、オンラインストレージに添付ファイルを自動的に保存してダウンロードURLに変換したりすることができます。そのため、従来と同じメールの送信方法で、標的型メール攻撃やPPAP問題の対策をすることが可能です。なお、GUIで設定を行うための管理ツール「SaMMAadmin」も併せて利用することで、SaMMAの設定変更をWebインターフェース上から簡単に行うことができます。専用ソフトのインストールは不要です。

Messasy

Messasy(Message Archive System)は、メールアーカイブのオープンソースソフトウェアです。メールはMaildir形式で保存されますので、imapサーバを利用して検索、閲覧することが可能です。 Messasyを利用することで、すべてのメールを適切な状態で自動的に保管し、Webブラウザ画面から、送受信者以外も管理や閲覧することができます。誤ってメールを削除してしまった場合やサーバーがダウンした場合でも、メールの本文や添付ファイルのデータ消失を防ぐことができます。また、後から保存したメールを確認できるため、データの不正利用やメールによる情報漏えいなど、万が一のトラブルの備えとしても活用できます。Apache Solrの全文検索機能とも連携できるため、メールの履歴を一つ一つ確認しながら探す手間や時間の削減にもつながります。

MADAI

MADAI(MAil Duplicator At Inbound)は、MTAと連携し、メールの複製を指定されたサーバへ配送するソフトウェアです。 MADAIでは、送られてきたオリジナルのメールを複製し、オリジナルのメールと複製したメールをそれぞれ別のメールサーバへ配送することができます。例えば、オリジナルのメールを外部と通信できるネットワークへ配送、複製したメールを無害化した上で内部のネットワークへ配送するといったことができるようになります。

メール承認システム

メール承認システム(MailApproval)とは、デージーネットが販売している、メール誤送信防止のための製品ソフトウェアです。メールを送る際、あらかじめ設定した承認者の確認を通して送信される仕組みを持っています。例えば、新入社員が外部へ送信するメールをチェックすることで、取引先とのトラブルを事前に防止するという用途で利用できます。他にも、中堅社員が重要なメールは上司のチェックを通すなど、ユーザのレベルに合わせた承認フローが実現できます。

デージーネットでは、Milterを利用したメールシステムの構築サービスやコンサルティングを行っています。また、システムの構築や保守に関して無料でお見積もいたしますので、お気軽にご相談ください。

「関連情報の一覧」

メール転送時の添付ファイル削除システム構築事例

添付ファイル削除

この記事では、携帯電話へメールを転送する時に、添付ファイルを削除したいというご要望に対し、Postfixの配送制御機能とSaMMAの添付ファイル削除機能を組み合わせた仕組みを構築した事例を紹介します。

postfixを利用したメールサーバ改善支援事例

メールサーバ改善事例

自社で構築をしたメールサーバ(postfix)に制限を設けて、送信先のサーバに負荷をかけずにメールを送りたいというユーザーのご要望に対し、サーバの改善支援を行いました。

メールサーバ管理システム開発(ホスティングサービス向け)事例

メールサーバ管理

お客様のメールサーバのドメイン数が多く、今後も増える可能性があるため、管理者の作業負担が大きいという課題がありました。そこで、デージーネットで開発したpostLDAPadminをベースに、ホスティングサービスの管理画面を作成しました。

Linuxメールシステムで無料で使えるおすすめOSS 比較29選

メールシステム比較

この記事では、自社専用のメールシステムを構築する際に安心してツールを選択できるように、デージーネットが実際に導入実績のある、Linuxのメールシステムで利用可能なOSSを紹介します。各OSSは、目次で用途別に分類しています。

デモのお申込み

もっと使い方が知りたい方へ
操作方法や操作性をデモにてご確認いただけます。使い方のイメージを把握したい、使えるか判断したい場合にご活用下さい。デモをご希望の方は、下記よりお申込みいただけます。

デモをご希望の方

デモの申し込みイメージ

OSS情報

MTAとMilterによる外部連携の先頭へ