SMTPメール送信プロトコルの仕組み

SMTPメール送信の仕組み

メールの送受信は直接PC同士がやり取りしているわけではなく、メールサーバーが仲介しています

メールの送信と受信の仕組みの一つであるSMTPについて簡単に解説していきます。

SMTPとは?

SMTP (Simple Mail Transfer Protocol)はメールの送信を行うプロトコルです。メールの受信に関してはPOPやIMAPなどのプロトコルが担当します。

Thunderbirdなどのメーラーで作成されたEメールはSMTPを使ってSMTPサーバー(メールサーバー)に送信されます。そして、SMTPサーバーは相手のメールサーバーにSMTPを使って送信します。

SMTPの動作

SMTPの動作 SMTPの機能は手紙を郵便局に届けて、相手の郵便ポストに入れるまでの過程と例えられることが多い。

ポートはTCP25番を使います。

メールアドレスからサーバーのIPアドレスを取得する

メールを送るにはメールアドレスが必要です。メールアドレスが住所のようなものです。

メールアドレスは「user@example.com」というような形式になっています。アドレスの「@」以下はメールサーバーのドメイン名を表しています。

しかし、ドメイン名だけでは送信することができません。IPアドレスが必要です。

このドメイン名「example.com」からIPアドレスを取得するにはDNSを使います。

DNSの機能と役割DNSとは?仕組みをわかりやすく解説

まず、example.comのホスト名を取得するためにDNSのMXレコードを参照して「ma.example.com」が得られます。

さらにAレコードを参照すればホスト名「ma.example.com」からIPアドレスを正引きできます。

こうしてメールサーバーのIPアドレスを取得することに成功しました。

SMTPの仕組み

メールクライアントからSMTPでメールサーバーに接続してメールを送信する流れは

  1. メールサーバーにTCP25番で接続
  2. メールサーバーから応答コードを受け取る
  3. メールクライアントがEHLOコマンドでクライアントのホスト名を名乗る
  4. MAIL FROMコマンドで差出人のメールアドレスを入力
  5. RCPT TOコマンドで宛先のメールアドレスを入力
  6. DATAコマンドで本文を入力する
  7. メール送信
  8. QUITで終了

これがSMTPのメール送信までの流れです。

SMTPの認証

これまでにメール送信に関するSMTPの役割について説明してきました。

SMTPを使ってメールを送信するSMTPサーバーにはある問題があります。

それはSMTPサーバーは「認証機能が無いこと」です。

認証機能が無いので悪意のある第三者が勝手にSMTPサーバーにメールを送信しても受け付けてしまい、不特定多数の人に送り付けるスパムメールが問題になります。

認証の対策として、POPサーバーの認証機能を利用して接続・認証してからでないとSMTPサーバーへの接続要求を受け付けない「POP before SMTP」という方法が古くは利用されていました。

SMTP Auth (SMTP Authentication)はSMTPの拡張機能でもともとSMTPになかった認証機能(SASL)を利用可能にするものです。現在はSMTP Authが普通に利用されています。SMTPのメール送信はTCPポート25番が利用されますが、SMTP Authはサブミッションポート587番を利用します。認証が無いポート25番はスパム対策のためISPのネットワーク内以外の通信は遮断されています(OP25B : Outbound Port 25 Blocking)。

SMTP Authを使うと認証によりSMTPサーバーの不正利用を減らすことができます。しかし、SMTPを使った通信で送信されるユーザー名やパスワード、メール文は暗号化されないので、盗聴されると悪用される危険があります。暗号化方法としてSSL(Secure Socket Layer)を利用するSMTP over SSL (SMTPS : 465番)がありうます。

メールサーバーソフトウェア

メールの送信を行うために利用されているソフトウェアを紹介します。

Postfix

PostfixはUnixで利用されているMTAソフトウェアです。Postfixは高速、互換性の高さ、信頼性の高さなどが特徴です。Sendmailに代わるメール転送エージェント(MTA:Mail Transfer Agent)として開発されています。バランスの良いソフトウェアとして定評があります。

sendmail

Sendmailは古くから使われているMTAの一つです。古くから利用されていて機能が豊富ですが、セキュリティーホールのできやすさなど信頼性に関する不安があります。Postfixと比べて設定などが難しいです。

qmail

sendmailよりも高速かつシンプルな動作かつ高い信頼性が特徴です。

Exim

EximはLinux系OSで使用されているMTAです。細かい設定がしやすいのが特徴で、シェアの半分近くを占めるなど多くの導入実績があります。

コメントを残す

メールアドレスが公開されることはありません。