Pmilterというサーバソフトウェアを作りました。
PmilterはProgrammable Mail Filterの略で、SMTPサーバ(送信や受信)とmilterプロトコルで通信し、SMTPサーバの送受信の振る舞いをRubyでコントロールできるサーバソフトウェアです。
これまでにも、milter managerやRubyのgemを使ってmilterサーバを作るといった素晴らしいソフトウェアがありました。ですが、今回僕がフルスクラッチで作りたかった理由としては、
- とにかくインストールや設定がシンプルで運用しやすいサーバソフトウェアにしたい
- ミドルウェアとして振る舞いを設定する感覚でRubyで制御する事に専念したい
- 依存ライブラリを減らしワンバイナリでサーバに配置できるようにしたい
- 設定変更に再起動することなくRubyを変更するだけで振る舞いを変えられるようにしたい
- インフラエンジニアも楽しく簡単にコードを書きながらメールサーバを運用したい
- spamメールや踏み台などに対して独自のアルゴリズムを簡単に実装してメールキューに入る前にrejectしたい
などがあったのと、後はWebばっかりじゃなくてメールに関するソフトウェアもちゃんと作っておきたいなと思ったからです。
実際作ってみるとSMTPやmilterプロトコルを勉強することにもなって、すごく楽しかったです。
ということで、以下にpmilterの使い方を簡単に紹介します。
続きを読む