メール配送は、(1)メールの送信、(2)DNSサーバへの問い合わせ、(3)メールのリレー、(4)各ユーザのメールボックスへ配信、(5)メールの取得という順序で行われます
(1)から(4)までがSMTP(Simple Mail Transfer Protocol)サーバの役割となります。
(5)をPOP(Post Office Protocol)サーバが請け負います。通常、メールサーバといった場合はSMTPサーバをさすことが多いのですが、両方またはPOPサーバのみを指すこともあります。
メールサーバ名 | mail.mshome.net(192.168.0.1) |
DNSサーバ名 | dns.mshome.net |
ドメイン名 | mshome.net |
ネットワーク | 192.168.0.0/24 |
クライアントはメールを送信する際に最低限2つの情報が必要となります。その2つというのが「相手のメールアドレスとSMTPサーバです。たとえば、メールアドレスがsend@mshome.netであった場合、「mshome.net」ドメインに存在する[send]というユーザを指していることになります。
メール配信の以来を受けたSMTPサーバはメールアドレスの@以降にあるドメインから配信先を決定します。 そこでDNSサーバに問い合わせを行うのですが、該当するDNSサーバで必ずAレコードとMXレコードを設定しておく必要があります。ここではメールに関連するAレコードとMXレコードのみ解説します。 まずは、hogehoge.co.jpゾーンを管理するDNSサーバにMXレコードの問い合わせを行います。 MXレコードとはMail exchangeレコードの略でドメインに対するメールサーバの優先度を表すものです。
mshome.net. IN MX 10 mail.mshome.net. mshome.net. IN A 192.168.0.1
通常は上記のような内容をゾーンデータベース内に記述します。このような記述をすることによって、宛先がsend@mshome.netというメールアドレスに関してはmail.mshome.netというホストに送られる形になります。 ドメインに対する実際のメールサーバのホスト名を取得できたら、次はそのホスト名のAレコードを検索します。ここでメールサーバのIPアドレスが取得できます。
メールを配信するホストを決定したらそのホストにメールを転送します。受信されたメールは、いったんキューという一時保存用のディレクトリに保存されます。もし、メールが自サーバ宛のものでなかった場合は、メールを他のサーバに転送します。
転送されてきたメールが自サーバ宛のメールであれば、ユーザごとのメールボックスに配信されます。ユーザ名はメールアドレスの@の左側にあるものでsendmailを利用する場合は、メールボックスは/var/spool/mail/sendなどユーザ名のついたファイル名になります。
メールボックスに配送されたメールは、そのままでも閲覧することが可能です。しかし、現在では、POPまたはIMAP(Internet Mail Access Protocol)というプロトコルを使用してメールソフトからメールを取得するのが一般的です。