ITメモ
ITの基礎・共通知識




メールサーバー

メールサーバー







メールサーバーとは


サーバーを用意しただけでは、サーバーは、メールの受け渡しなどの作業をすることができない。
サーバーの中に、メールサーバーという機能を構築することで、メールの受け渡しなどができるようになる。
メール送信機能のソフトウェアとメール受信する機能のそれぞれのソフトウェアが必要になる。
メールを受信する機能は、メールサーバーでメールを受け取る機能に加え、それぞれの端末からアクセスして、
メールを閲覧させる機能を含んでいる。




メールサーバーの設定


サーバーに導入しているOSの種類によって、設定方法などが異なるため、
OSの項目で、メールサーバーの導入方法を解説しているので、メールサーバーの設定は、そちらをご確認ください。




メールボックスの形式


メールボックスの代表的な形式


  • Mailbox
  • Maildir

当初は、「Mailbox」が使われてきたが、「Mailbox形式」は、
複数のメッセージが1つのファイルに連結された形式で保存されるため、大きなファイルになって効率が悪い。



Mailbox


「Mailbox形式」は、複数のメッセージが1つのファイルに連結された形式で保存される。
個々のメールは、「CR+LF」で一区切りと判断される。
一般的に、サーバー上で共通のスプール領域に置かれる。
「/var/spool/mail/user01」「/var/spool/mail/user02」と行った形で、ユーザーごとのファイルで管理される。
他のプロセスが、ユーザーファイルを使用していると、排他制御が働き、アクセス待ちが怒ってしまう。
複数プロセスのアクセス時に、ファイルが破損する危険性もあり。
ユーザーファイルの属性も、「755」「777」に設定する必要があるため、セキュリティ的に問題がある。




Maildir


メールはデフォルトで、ユーザーのホームディレクトリに振り分けられる。
1通のメールは、1つのファイルとなり、保存ディレクトリに保存される。
「cur」「new」「tmp」という3つの保存ディレクトリが作成される。
tmp MTAが受け取ったメールは、まず「tmp」ディレクトリに書き込まれる。
書き込みが終了するまで、「tmp」ディレクトリに保存される。
new 「tmp」ディレクトリへの書き込みが終了したメールは、書き込み完了後、自動的に「new」ディレクトリに移動される。
cur MUAでメールを読み込むと「cur」ディレクトリに移動される。


mailbox形式よりも小さなファイル扱える。
1メールにつき、1ファイル。
デッドロック問題も発生しづらくなる。
処理速度も高速になる。

Maildir形式に対応したMRA(POP・IMAPサーバー)を使用する必要がある。
最近のMRAは、ほとんど対応している。

利用していたMailboxを、Maildir形式に変換する「mbox2maildir」という有名なPerlスクリプトもある。







メールサーバーに利用されるプロトコル


MSA

MSA(Message Submission Agent)は、ユーザーから送られてくるメールを受け取るプログラム
OPB25や認証を行う部分になる。
MSAは、一般的に次のメールは移送を受け持つMTAとしてまとめて解釈されることが多い。
受け取ったメールは、MTAに配信される。


MTA

MTA(Mail Transfer Agent)。
メールを配送するエージェントプログラム。
MTAは、一般的に「メールサーバー」や「SMTPサーバー」と呼ばれるものにあたる。
SMTPプロトコルを使いメールを配送する。
MTAは、MSAや、ほかのMTAからメールを受け取る。
次に、DNSサーバーを検索して、宛先のMTAのIPアドレスを見つけ、メールを送付する。
ローカル宛のメールの場合、MDAに送付する。


MUA

MUA(Mail User Agent)は、エンドユーザーがメールを読んだり作成したりするプログラム。
通常、「メールクライアントソフト」や「メーラー」と呼ばれるプログラム。
メールを送信すると、SMTPプロトコルを使い、MTA/MSAに接続する。
メール受信時は、POP、IMAPプロトコルなどを利用し、メールボックスからメールを受け取る。


MDA

MDA(Mail Delivery Agent)は、MTAが受け取ったメールをメールボックスに配送するプログラム。
MTAが受け取ったメールを、MUAが読み取れるようにローカル分類は移送をするだけ。
LDA(Local Delivery Agent)と呼ぶこともある。
メールボックス形式は、「Mailbox形式」と「Maildir形式」がある。


MRA

MRA(Mail Retrieval Agent)は、メールボックスに保存されたメールをMUAに渡すプログラム。
MUAから接続されて認証を行う機能を持つ。
MUAは、「POP」「IMAP」などのプロトコルを使ってMRAに接続することから、MRAのことを「POPサーバー」「IMAPサーバー」と呼ぶ。


SMTP



POP



IMAP