SMTP/POP

目次

SMTPとは

SMTP(Simple Mail Transfer Protocol)は、電子メールを送信するためのプロトコルです。ユーザがメールソフト(メーラ)で作成したメールを、SMTPを使って自分のメールサーバに送信します。SMTPはTCP上で動作し、標準のポート番号は25番です。

POPとは

POP(Post Office Protocol)は、電子メールを受信するためのプロトコルです。ユーザがメールソフトからメールサーバにアクセスして、受信メールを取り出すときに使用されます。現在はPOP3(バージョン3)が主流であり、標準のポート番号は110番です。ただしPOP3ではパスワードが暗号化されずに送信されるため、セキュリティ上の弱点があります。

メールの送受信の流れ

  1. ユーザがメーラでメールを作成し、自分のメールサーバにSMTPで送信する
  2. 送信側のメールサーバは宛先アドレスのドメイン(@以降)を確認し、DNSで相手のメールサーバのIPアドレスを調べる
  3. SMTPで相手のメールサーバに転送し、メールが相手側サーバに保存される
  4. 受信者がメーラでメールチェックを行い、POP3で自分のメールサーバにユーザ名とパスワードを送信する
  5. 認証が成功すると、サーバから受信者のメールが転送され、ユーザはメールを読むことができる

SMTPによるメール送信の仕組み

SMTPはテキストベースのコマンドと応答で動作します。メールクライアント(メーラ)がコマンドを送信し、サーバは3桁の数字で応答します。
例えば「HELO」「MAIL FROM」「RCPT TO」「DATA」といったコマンドを使い、サーバからは「250 OK」「354 Start mail input」といった応答が返されます。本文(例:”This is a test mail”)はコマンドではなく、データ部分です。

POP3によるメール受信の仕組み

POP3も同じくテキストベースで動作します。クライアントは「USER」「PASS」「LIST」「RETR」「DELE」といったコマンドを送信し、サーバは「+OK」(成功)または「-ERR」(失敗)で応答します。この応答には追加のメッセージが付与される場合があります。

「SMTPは送信用」「POP3は受信用」と覚えると分かりやすいです。最近では受信にIMAPが使われるケースも多く、POP3との違いも押さえておくとさらに理解が深まります。

SMTPプロトコルと認証の問題点

SMTP(メール送信用プロトコル)は、基本的に認証を必須としていません。その理由は、SMTPはメールソフトからメールサーバに送信するだけでなく、メールサーバ間でメールを転送するときにも利用されるためです。もし認証が必須だと、他のドメインのメールサーバから正しく転送できなくなってしまいます。

認証しない場合の問題点

認証がないSMTPは、悪用されやすいという問題があります。たとえば契約しているプロバイダ(ISP)のメールサーバを使わずに、インターネット上のセキュリティが弱いメールサーバを経由してメールを送信することが可能です。この仕組みを悪用してスパムメールが送られることが多く、スパマーは身元を隠しながら不特定多数へ広告メールを配信してきました。

OP25B(Outbound Port 25 Blocking)

この問題に対して、多くのISPは「OP25B」という対策を実施しました。これは、利用者が契約していない外部のメールサーバに直接送信しようとするメールをブロックする仕組みです。これによりスパムメールは大幅に減少しました。

サブミッションポート

しかしOP25Bには副作用がありました。たとえばホテルなど外出先のネットワークでは、宿泊施設が契約しているISPのメールサーバしか使えず、自分のISPのサーバに接続できないことがありました。

この問題を解決するために導入されたのが「サブミッションポート(587番ポート)」です。サブミッションポートは、メールソフト(メーラ)から自分のメールサーバに送信するとき専用に使われるポートです。

ポイントは以下の通りです。

  • サブミッションポートは 587番ポート を使用する
  • プロトコル自体は従来通りSMTP
  • メール送信時には必ず SMTP認証(ユーザ名とパスワードによる認証) を行う
  • メールサーバ間の転送は従来通りポート25を使用し、認証は不要

サブミッションポートの利用方法

  1. メーラの設定でSMTPポート番号を「25」から「587」に変更する
  2. 「このサーバは認証が必要」という設定を有効化する
  3. 通常は、POP3と同じユーザ名・パスワードでSMTP認証が行われる

現在では、自宅でも外出先でも最初から「587」に設定しておけば問題なくメール送信できるケースが多いため、宛先ポートは587に設定しておくのが一般的です。

  • 25番ポート → サーバ間通信用(認証なし)
  • 587番ポート → メーラからサーバへの送信用(認証あり)
    と覚えると理解しやすいです。

◆まとめスライド

目次