メール配送の仕組み

[back] Linux メール SMTP

メール配送は、(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]というユーザを指していることになります。

DNSの問い合わせ

 メール配信の以来を受けた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)というプロトコルを使用してメールソフトからメールを取得するのが一般的です。


[back] Linux メール SMTP