SMTPとメール
- 2015年9月15日
- by SendGrid
- Category: ベストプラクティス 技術ネタ
この記事は SMTP and the Evolution of Email の抄訳です。
SMTPとは
Simple Mail Transfer Protocol(簡易メール転送プロトコル)という名前の通り、SMTPは簡易なテキストメッセージをデバイス間で転送するための、手軽でシンプルな手段として作られました。最初のSMTPの規格では、いわゆる「サーバ」にあたるMTA(Mail Transport Agent)と、「クライアント」にあたるMUAを区別していました。
SMTPは2つのMTA間でメッセージをやり取りするためのものなので、「メッセージの保存」「クライアントからメッセージへのアクセス」「音声や画像など複雑なコンテンツの送信」といった機能を実現するようにはできていません。単に、厳密に構造化されたメッセージをAからBへ移動させるためのルールです。
初期のインターネットとSMTP
インターネットは、教育機関や政府のためのクローズドな研究ネットワーク “ARPANET(アーパネット)” を元に開発されました。このARPANETや初期のインターネットは今とは違い、「限られた数の信頼されたユーザのみがネットワークに接続することができる」「商用利用は許可しない」という前提のもとで作られています。
SMTPの最初のバージョンも、このような環境を想定して設計されました。
その後、商用利用にも使える、より安定したメッセージ転送プロトコルとしてX.400が開発されました。SMTPの競合にあたるX.400には、信頼性が保証された配信、トラッキング、その他セキュリティおよび認証の機能がありましたが、実装が複雑でした。この頃のベンダーは最終的に、よりシンプルで安価なSMTPの方を選択しました。
現在のSMTPにも、その起源の名残が見てとれます。
- 信頼できるユーザのみのネットワークではそれほど重要ではなかったため、プロトコルに認証や暗号化の仕組みがありません。(※後に機能が拡張されました)
- 送受信に関する通知の有無は、受信側のクライアントに依存します。ただし、恒久的に届かないメッセージについては、配信状況に関する通知(DSN)として確実に返されます。
- 例えば、FedExやUPSのような宅配サービスでは支払う金額次第で配達にかかる日数を指定できますが、SMTPにはそのような指定ができる仕組みがありません。
- どうフィルタリングされるのかが不明瞭です。クライアントやサーバ、もしくはクラウド上のどこかにあるスパムフィルタによって、重要なメッセージが勝手にフィルタリングされてしまうことがあります。(また、今ではGmailのタブ機能のように、受信ボックス内でもフィルタリングされることがあります)
- SMTP(もしくはメール全般)において、開封やクリックをトラッキングしようとすると、大抵はWebベースのテクノロジー(例:画像やアンカータグなど)が必要になります。
メールの進化
インターネットが普及するにつれてビジネスでもメールが使えるようになりましたが、商用利用によるアクセス禁止が発生していました。いくつかの大企業(特にIBM、DEC、Control Data)は共同メールシステムを構築していましたが、そのうち、中小企業(Novell、Lotus、Microsoftなど)がメールシステムのビジネス的価値に気づき、メールを含む社内システムの構築を始めました。SMTPの規格ができた後、いくつかの先進的なベンダーは、MTAに繋げるゲートウェイやコネクターまで含んだSMTPのサポートを始めましたが、十分な相互運用性を兼ね備えたものはありませんでした。
複数のMTAベンダーにまたがる相互運用性の確保の難しさや、独自仕様のコネクターの存在により、ベンダーはよりシンプルかつ安定したソリューションを開発する必要に迫られ、1990年半ばにはSMTPが多くの支持を集めるようになりました。そして現在、SMTPはサーバ間メール転送のデファクトスタンダードとなり、イントラネット/インターネットに関わらず、Microsoft Exchangeのような一度は独自プロトコルを採用したプロダクトにさえ使用されています。
SMTPがやってくれることの範囲
名前の”T”が示している通り、SMTPは転送(Transport)プロトコルであり、AからBへメッセージを移動させるためのものです。多くのインターネットプロトコルと同じように、SMTPでもメッセージのパケット通信にはTCP(Transmission Control Protocol)を使用しています。
つまりIPに乗っかったプロトコルのため、メッセージをサーバに届けるまではSMTPがやってくれますが、その後のことには関知しません。例えば、配達員が土曜のオフィスに荷物を置いていったとして、その後に何かが起きたとしても配達員の責任ではありませんよね。
メールの到達性、モニタリング、トラッキング、認証、暗号化。これらは全て、必ずしもSMTPで提供されている機能という訳ではありませんが、非常に重要なものです。