携帯メールの仕組み
1.携帯メールは各社独自のシステム 携帯電話のメールシステムは、各携帯電話会社独自のシステムを作っている。
インターネットでは、インターネットメールサーバを配置しプロトコルにSMTPとかPOP3などを使っているが、
携帯電話では同じく携帯メールサーバを配置し独自のプロトコルを使っている。
さらに、メールデータの中身も携帯電話会社が独自に作っている。
つまり、インターネットメールの標準が”MIMEフォーマット”に対し、携帯電話メールは”独自のフォーマット”となる。
携帯電話会社のメールサーバのメールボックスに蓄積されたデータを
同携帯電話会社の携帯電話同士のメールのやりとりでは、独自のプロトコルで直接メールの送受信が行われる。
さらに、各携帯電話会社では、この独自のメールサーバを数十台全国に配置している。
当然複数台全国に配置しているのは、サーバの負荷を分散する意味があるからだろう!

--------------------------------------------------------------------------------


2.他携帯電話会社やインターネットへの送受信は、メールゲートウェイが活躍




図1(携帯メールシステムの仕組み)

携帯メールがインターネットや他社携帯メールとやりとりするときは、
携帯電話会社のメールゲートウェイがプロトコル変換を行う。
つまり、SMTP←→独自プロトコルの相互変換を行うわけである。
だから、必ずメールゲートウェイを通過することになる。
さらに、メールゲートウェイは、メールのフォーマット形式の変換も行う無くてはならない存在である。
したがって、このメールゲートウェイサーバは非常に重要な役目を果たしている。

図1は、携帯メールシステムを表した図である。

携帯電話から送信されたメールは、携帯メールサーバが受け取る。
メールサーバは送り先をチェックして同じ携帯電話会社の携帯へのメールであれば、
そなまま宛先のメールボックスに保存する。そうでなくて、宛先がインターネットメールユーザだった場合、
そのメールをメールゲートウェイへ転送する。
メールゲートウェイはそのメールフォーマットをインターネットメール形式(MIME)に変換して 、
SMTPプロトコルによってインターネット上の宛先のへサーバへ配送する。
これをSMTPで受け取った宛先のサーバへクライアントがPOP3でダウンロードしてめでたくメール配送が完結する。
逆に、インターネットから携帯電話へ送られてきたメールは、いったんメールゲートウェイが受け取り、
メールフォーマット変換して独自のプロトコルにて携帯メールサーバへ転送する。
携帯メールサーバのメールボックスにメールが保存されたら、
携帯電話は独自のプロトコルにより携帯電話にメールをゲットする。
また、他の携帯電話会社の携帯とメールのやりとりをする場合は、
一度インターネットを経由してメールが配送されるので、経路的に非常に無駄となる。
他社携帯電話へのメール遅延の問題があるのは、この経路的な理由もあるのではないだろうか? (爆爆)

--------------------------------------------------------------------------------


3.携帯電話の独自のプロトコルとは?

独自というだけではっきり言って各社のプロトコルの詳細は解らない。
ただし、NTTドコモに限ってはどこぞやで見たことがあるのでお話しする。
通常、インターネットメールプロトコル(SMTP)のやりとりは、
結構制御情報をやりとりしなければならないのでかったるいとも言う。
では、インターネットでMUA(メールソフト)からメールを送信する場合のSMTPについて考えてみる。
まず、MUAがメールサーバにHELOパケットで呼びかける。
応答が帰ってきたら、次に自分のメールアドレスを知らせる。
これに対するOKメッセージを受け取ったら、今度は宛先メールアドレスを知らせ、OKメッセージを受信する。
さらに、制御情報を送ってOKメッセージを受信・・・・・。この一連のやりとりで一通のメールを送信する(ーー;)。
かなり、かったるい。これで、俺なりに今頃解る!”
こんなかったるい手順踏むプロトコルは携帯メールには使えないじゃん!”

さて、今度は携帯のメールのやりとりを見ていこう。携帯電話からメールを送信する場合は、
送信を意味する制御パケットに続けて、一通のメールデータパケットを丸ごと送り、
携帯メールサーバからOKメッセージを受信したら終わりである。
NTTドコモの場合は、 このプロトコルをALP(Application Layer Protocol)という。
何でこんな単純なプロトコルであるかというと、不安定な電波の電界強度、
遅い通信速度をカバーするためにきわめて高速にメールのやりとりを実現したかったようである。
さらに、このプロトコルの原型はWebアクセスで有名なHTTPプロトコルをヒントにしたと言うことである。
それに独自の方法をミックスしたのでは無かろうか?

--------------------------------------------------------------------------------


4.メールの着信は携帯メールサーバが知らせる

では、携帯電話がメールを受信するときはどのようなメカニズムであろう?
インターネットではメールをサーバからダウンロードするプロトコルをPOP3というプロトコルを使う。
POP3は認証を行うプロトコルである。したがって、サーバにアクセスしたときユーザIDとパスワードを送り、
メールサーバに認証を依頼する。そして、MUAは何通のメールが届いているかをメールサーバへ問い合わせる。
その結果から、何通目がほしいというメッセージをサーバに送る。
すると、サーバ上のメールボックスから適切な自分宛のメール一通丸ごとゲットできる。
これの繰り返しを行い、最後に終了の合図をやりとりして受信処理が終わる。

さて、携帯メールのことを考えてみると、これもALPを使う。
変わり種としては、携帯メールサーバのユーザメールボックスへメールが届くと、
サーバはすぐに携帯電話に着信通知を送る。この機能は完全に携帯電話での新しい機能であろう。
だって、インターネットの場合はこちらからサーバに問い合わせしないと
ユーザはメールが届いてるか?解らない。
着信通知を受けた携帯電話は、これを機にALPプロトコルにより携帯メールサーバから
自分宛メールをゲットする。つまり、HTTPプロトコルでWebページにアクセスするように、
リクエストを携帯メールサーバに送り、携帯メールサーバが対応する蓄積メールをレスポンスとして返信する。
したがって、メールボックスに着信したら、通知がユーザの携帯に送信されるので
携帯が電界強度の強いところにいれば、まあ結構早くメール受信が可能となる。

--------------------------------------------------------------------------------


5.電源切れや電波の届かないところではどうなのか?

さて、それでは携帯電話の電源が切れていたり、電波の届かないところもしくは電界強度の弱い
ところではどうだろうか?自分宛のメールは、受信メールを携帯メールサーバのメールボックスに残しておき、
ユーザの携帯電話との再リンク確立時と新着メールが届いた時の旨いタイミングで
着信通知をユーザ携帯電話宛に送る。携帯メールサーバは着信通知を送るだけで、
通知がユーザの携帯電話に届いたかどうかは知ったこっちゃ無い。

ちなみに、メールサーバはMax40〜50通程度まで、携帯メールサーバのメールボックスに
ユーザ宛メールを蓄積できる。ただし、規定以上になると携帯メールサーバは受信を拒否する。
ALPでは、こういうことも実現している。ユーザのメールボックスにメールが
複数到着してることをALPパケットで知らせている。リクエストを携帯メールサーバに送って
着信メールを一通受信するが、このレスポンスパケットにメールが残っているかがデータとして入っている。
これを携帯電話はチェックして、自分のメールボックスにメールが残っている旨を知ることができる。

--------------------------------------------------------------------------------


6.携帯メールはサーバに残せない!

インターネットメールでは、MUAが自分宛メールを受信しようとしても、
サーバにメールを残すことができる。つまり、別な場所で必要に応じて
再度メールをサーバからダウンロードできることを考慮している。
しかし、携帯メールはサーバにメールを残すことができない。
それは、携帯メールシステムの携帯メールサーバのメールボックスと携帯電話が
1対1に対応づけられており、携帯に受信メールが移動したことにより携帯メールサーバの
メールボックスに残す必要がないからである。
さらに、メールボックスへの蓄積メールの数が決まっているため、
携帯電話が携帯メールサーバからダウンロードされたら、携帯メールサーバ側は即座に削除している。
さらに、携帯メールサーバのメールボックス内のメールは必ず携帯電話がゲットするため、
携帯電話から携帯メールサーバのメールボックスのどのメールをゲットしたいという指定もできない。

--------------------------------------------------------------------------------


7.では、NTTドコモ以外の携帯電話会社はどうか?

今まで、NTTドコモを中心に説明してきたが、ではNTTどこも以外の
携帯電話会社の携帯メールシステムはどうか?
多分、プロトコルが違うだけでたいして違いはないと思う。
たとえば、WAP(WireiessApplicationProtocol)と言う国際標準のプロトコルを使ってるところもある。
しかし、このプロトコルもHTTPベースなのでALPと対して変わらないと思う。
また、その他で違うところと言うとメールの種類によりサーバが違う携帯電話会社がある。
画像専用サーバを設けてメールの中身の振り分けを行っている。

--------------------------------------------------------------------------------