メール配送の仕組み(2)
著者: (株)ネットエイジ melpod 開発チーム プリンター用 記事を転送
▼2003年8月21日 00:00 付の記事
□国内internet.com発の記事
前回、以下のようにメール配送の概要をざっと眺めてみました。
それではこれらのステップを、順を追って見ていきましょう。
■メール配送のプロトコル SMTP
送信者の MUA は、メールサーバーの MTA に電子メールを送信します。
たいていの MUA では、「メールサーバー」や「SMTP サーバー」をあらかじめ設定するようになっているはずです。通常 MUA
は、送信する電子メールを全て、設定された特定のメールサーバーに送ります。
この時 MUA と MTA の間では、SMTP (Simple Mail Transfer Protocol)というプロトコル(通信手順)でメールが送られます。SMTP
は RFC 2821※1 で定められた、メールの送受信を行うためのプロトコルです。
SMTP は TCP※2
の 25番ポートを使って、比較的単純な通信を行います。通信の内容はテキスト文字列ですので、telnet※3
などの通信プログラムを使用することで、簡単に SMTP を使ったメール送信をシミュレートすることが可能です。
例えば、以下の赤字の部分は telnet コマンドを実行してキーボードから入力している部分です。これは
MUA が MTA に送信したり、MTA が MTA にメールを配送する場合も、全く同じような手順で行われます。(青字はメールサーバーからの応答です)
| %
telnet メールサーバーのIPアドレス 25 |
←telnetコマンドでメールサーバーに接続 |
| 220 メールサーバー ESMTP |
|
| HELO 自分のホスト名 |
←最初に自分の名前を名乗って挨拶します |
| 250 自分のホスト名 |
|
| MAIL FROM: luke@example.com |
←送信元のメールアドレスを指定します |
| 250 Ok |
|
| RCPT TO: obi-one@example.co.jp |
←宛先のメールアドレスを指定します |
| 250 Ok |
|
| DATA |
←ここからメールデータの開始です |
| 354 End data
with <CR><LF>.<CR><LF> |
|
|
To: obi-one@example.co.jp
Subject: test mail
From: luke@example.com
|
←メールヘッダを記述します |
| (空行) |
←ヘッダと本文の間は空行を入れます |
| This is test
mail. |
←メール本文を記述します |
| . |
←本文はピリオドで終了します |
| 250 Ok |
|
| QUIT |
←通信終了の合図です |
| 221
Bye |
|
|
MUA が上記のような通信で MTA にメールを送信すると、受け取ったメールサーバーの MTA は、最終的に宛先である obi-one@example.co.jp
さんのメールボックスに、以下のようなメールを届けます。
To: obi-one@example.co.jp
Subject: test mail
From: luke@example.com |
|
this is test mail.
|
|
しかし、obi-one@example.co.jp さん宛にメールを届けるためには、MUA からメールを受け取った MTA が、obi-one
さんのメールボックスを持っている配送先の MTA を知らなければなりません。それはどうやって知ることができるのでしょうか。
■メールアドレスの構成
メールの宛先は、メールアドレスによって決められています。
メールアドレスの形式は SMTP と同じ RFC 2822 で定められていて、@マークより前の local-part と、後ろの
domain-part から構成されています。
|
obi-one
|
@ |
example.com
|
|
(local-part)
|
|
(domain-part)
|
|
local-part は、ちょうどメール受信者にとって、自分のメールボックスを示す部分になります。
domain-part は、このメール受信者のメールボックスが、どのサーバーにあるのかを示す部分です。つまりこのアドレス宛のメールを、どこに配送したらよいのかを知るためには、domain-part
を参照して決定します。
では domain-part に書かれているドメイン名から、配送先のメールサーバーをどのようにして決定するのでしょうか。
■配送先サーバーの決定
MUA からメールを受け取った MTA が、宛先アドレスのドメイン宛のメールをどのメールサーバーに配送するか決定するためには、DNS(Domain
Name System) を使います。DNS は RFC 1035 等※4
で定められたシステムで、ドメイン名に関連する情報を管理・検索するための仕組みです。
DNS では、ドメインに対して設定できる項目として、MX(Mail eXchanger)という情報を規定しています。この MX
情報が、このドメイン宛のメールを配送する際の、送信先メールサーバーとなります。ドメイン(DNS サーバー)の管理者は、自分のドメイン宛のメールをどのメールサーバー宛に到達させるかを設定するために、この
MX 情報を使用しています。
例えば example.co.jp ドメイン宛のメールを配送する場合、MTA は DNS を参照して example.co.jp
ドメインの MX 情報を取得します。その後 MX として登録されているメールサーバーの MTA に対してメールを配送することで、最終的に宛先アドレスのメールボックスにメールを届けることができるようになります。
以上、今回は送信者がメールを送信してから、受信者のメールボックスに届くまでを眺めてみました。次回はメールサーバーのメールボックスに届いたメールを、どうやって受信者が確認しているのかを見ていきたいと思います。
※1…RFC (Request For Comments)
IETF (Internet Engineering Task Force) という団体がまとめている、インターネット技術に関する標準をまとめた文書。
SMTP をはじめ、ほとんどのインターネットに関する技術標準がまとめられています。RFC の内容を調べたい時は、RFC
Sourcebook が便利です。
※2…TCP (Transport Control
Protocol)
TCP/IP (Internet Protocol) は、インターネット上で通信を行うための基盤となるプロトコルですが、このうち
TCP はポートと呼ばれるネットワークのサービスを提供あるいはアクセスするための番号を管理したり、エラー検出などをおこなうプロトコルです。
※3…telnet
端末間の双方向通信をおこなうためのプロトコルで、RFC 854 から続く一連の RFC で基本仕様が定義され、その他多くのRFC
で機能拡張について説明されています。
※4…DNS は RFC 1034,1035 をはじめ、非常に多くの
RFC でその拡張や補足説明がおこなわれています。
(執筆:佐藤 僚)
関連記事 メール配送の仕組み(1)
ネットエイジ、SRA の PowerGres をメーリングリスト管理ソフトに採用
{IW2000}日本型ネットビジネスの離陸のために:ネットエイジ -(1)
{IW2000}日本型ネットビジネスの離陸のために:ネットエイジ -(2)
韓国の人気投資ゲームサイト、日本でサービス開始
|