本稿では、すでにMTAとしてsendmailが導入済みであるという前提で話を進めます。要求バージョンを満たしている場合、sendmail自体の再コンパイルは必要ありません。ですが、多くの環境ではmilterプログラムのコンパイルに必要となるmilterライブラリは用意されていないため、ソースコードからコンパイルする必要があります。
(a) sendmail
MTAプログラムです。MTA、milterクライアントとして動作します。バージョン8.13.0よりmilterの機能が標準で組み込まれるようになりました。
以下のコマンドによりコンパイルオプションが確認できます。 「MILTER」の記述があれば組み込まれています。
$ /usr/sbin/sendmail -d0 < /dev/null |
(b) milter
先述したとおり、sendmailのMilter APIを用いた外部プログラムです。このプログラムはmilterサーバとして動作します。milterクライアント(sendmail)との通信は、UNIXドメインソケットまたはTCPを利用することができます。スレッドに依存しているため、一部のOSでは動きません(動作確認済みのOSについては後述します)。
今回解説する実装の一覧は以下の通りです。
●表1 milterプログラム一覧
プログラム名 | 利用可能な機能 | 最新バージョン | 使用バージョン |
sid-milter | SenderID、SPF | 0.2.9 | 0.2.9 |
dk-milter | DomainKeys | 0.3.0 | 0.3.0 |
dkim-milter | DKIM |
0.1.1 | 0.1.1 |
milterサーバは、スレッドを使用しています。そのため、スレッドの使えないOSではsendmailとmilterサーバを同一ホストで実行させることができません。milterサーバのみスレッド使用可能なホストに分離すれば、問題なく使用できます。
基本的なOSの制約は上記の通りとなります。参考までに、私が動作確認をしている環境を以下に示します。本稿の例ではSolaris 9環境にて構築、設定をしています。
今回のmilterプログラムに必要とされるバージョンは、sendmail8.13.0.Beta3以降です。特に理由がなければ、本稿執筆時点での最新版である8.13.4の使用をお勧めします。
sendmailに関しては、MTAプログラムであるsendmail本体と、milterプログラム用のライブラリである「libmilter」をコンパイルします。使用しているsendmailが要求バージョンを満たしている場合は、libmilterのみのコンパイルで問題ありません。
以下のコマンドの実行によりmilterライブラリ(libmilter)が作成されます。
$ cd /tmp $ gzip -dc sendmail.8.13.4.tar.gz | tar -xf - $ cd sendmail-8.13.4/libmilter/ $ ./Build |
これにより、以下のファイルが生成されていれば成功です(注:Solaris9での場合)
/tmp/sendmail-8.13.4/obj.SunOS.5.9.sun4/libmilter/libmilter.a
必要な場合はsendmail本体もコンパイルします。
$ cd /tmp/sendmail-8.13.4/ $ ./Build |
各milterプログラムのコンパイルに必要となるパスは以下の通りです。
《PREV》 |