03.E-Post Mail Serverの構造
以下に、E-Post Mail Serverシリーズのブロック図を示すので参照してほしい。
各プログラムについては、図と見比べながらひとつずつ後述することにする。
E-Post Mail Serverシリーズは、「SMTP 受信部」「SMTP 配送部」がそれぞれ独立して連携しながら、SMTPのメールの配信を行う。
このとき、ウイルスチェック(Enterprise II 版のみ)やメールのフィルタリングは、「SMTP 受信部」で受領完了前に行われる。
また、「SMTP 受信部」で受領されたメールは、1メールごとに、ヘッダを含む本文メッセージを"BXXXXXXXXXX.MSG"という拡張子".MSG"のファイルとして管理される。
また、送信元エンベロープ、送信先レシピエント情報は、"BXXXXXXXXXX.RCP"という拡張子".RCP"のファイルとして、配送処理が完了するまでの間、1対のファイルとして管理される。
メールの受領がされると、各ユーザー宛に配送されるのだが、ドメイン内のユーザーは、ローカルの各ユーザーのメールボックスへ保管される。それを取り出すために、「POP3サービス」「IMAPサービス」が用意されている。
EPSTRS(SMTP サーバー 受信部)
外部のSMTPサーバーからの受信や、メールクライアントからのメール送信時にメール受付けを処理する。
ここでは、各種の受信制限(メールフィルタ、ウイルスチェック、サイズ制限、SMTP認証、アカウント確認)が行われ、受領メールの選別を行っている。
受信能力は、実機の性能にもよるが、例えば、一昔前のPentium4クラス以上のCPU 2.4GHz、メモリ1GB、RAID0構成でインターネット経由のクライアントからの複数同時接続した場合、条件次第で5〜6万通/時間といった性能を発揮できる。
EPSTDS(SMTP サーバー 配送部)
EPSTRS(SMTP受信部)で受領したメールについて、ローカルユーザー向け、別のドメイン宛を選別し、それぞれのアドレス宛へ送信を行っている。
なぜ、配送性能が高いかというと、受信部と配送部がそれぞれ別のサービスとして動いているからだ、すなわち、受信部、配送部一体型のプログラムでは、どうしても、受信中に配送処理ができないのだから、そういったSMTPサーバープログラムとは始めから比較にならないほど高い性能になるのである。
配信能力は、実機の性能にもよるが、例えばハード構成が上記の条件の場合、マルチスレッド数=30〜60程度の設定で、インターネット経由の実際の運用環境では、SMTPサーバ宛への接続に対し、8〜12万通/時間配送可能といった性能を発揮する。ただし、配送エラーなしの場合である。
(注:配送性能30万通/時間は、LAN内にあるSMTP間での計測の最速結果)
EPSTPOP3S(POP3 サーバー)
メールクライアントからの要求に応じて、ローカルユーザーのメールボックスに蓄えられたメールを取り出し、メールクライアントに渡す処理を行う。
EPSTIMAP4(IMAP4サーバー)
メールクライアントからの要求に応じて、ローカルユーザーのメールボックスに蓄えられたメールを取り出し、メールクライアントに渡すことはPOP3と同様だが、すべてサーバー上でメールが読まれ、未読・既読などの管理もサーバー上で処理される。
サーバー上で管理されているため、複数のメールクライアントから同時に同一のアカウントで接続でき、メール情報及び操作情報(返信済、未読、既読状態など)を複数のユーザー間で共有することが可能。
また、メールクライアントの機能にも左右されるが、サーバーサイドでの検索コマンドが用意されているため、メールボックスに蓄えたメールDBの検索といった使い方も可能となる。
VMCS(Enterprise II 版のみ)
Enterprise II 版には、アンチウイルス機能が搭載されている。アンチウイルスエンジンは、ファストスキャン版アンチウイルスエンジンが使われる。VMCSは、このデータベースを更新するためのサービスプログラムであり、ウイルスパターンファイルデータベースの更新が定期的に行われる。このデータベースには、マルウェアや一部スパイウェアも含まれている。
ちなみに、Standard版にはこのサービスは搭載されていない。
IPWCS(クラスタモデル版のみ)
クラスタモデル版で使われるE-Postクラスタ機能を実現するためのサービス機能である。
クラスタモデル版では、可用性を高めるために、2台のマシンにアクティブ−スタンバイが切り替わる論理IP(仮想IP)を設定することができる。そのIPにてメールサーバーが運用される。IPWCS(E-Post IP Watcher)は、マスタとなるメールサーバーマシンがアクティブか否かを監視し、マスタマシンがダウンしている場合は、スレーブマシンが論理IPを引き受け、送受信機能を引き継ぐ。
設定によっては、マスタマシンが復旧した場合にも、論理IPをマスタマシンに引き戻すことも可能であるし、スレーブマシンがそのままマスタマシンとして動作することも可能だ。
また、特定時間でマスタマシンとスレーブマシンが、論理IPを交互に移行し合うことも可能だ。ただし、この場合の切り替わり時の接続セッションは、切断されるので、運用する際には注意が必要となる。