SMTPで利用されやすい4つのポートの使い分け

Table of Contents

ふと思った。smtpのポートの使い分けってどうしているのだろう, と。

25はspamに使われやすいから587が使われるようになったというのは知っていた。 が, どうも465もあるらしい。

SMTP Port 25, 465, 587 or 2525 – How to Choose The Right SMTP Port?

このサイトには, smtp(s)用のポートの概要と歴史について書かれていた。
私なりにまとめると, 以下の通りである。

  • smtp用にはPort 587を使った方が良い
  • Port 25はポートリレーに使われるデフォルトポート
  • Port 465はもはや使われるべきではない
  • Port 2525は他の全てのポートがブロックされている時に使われる

また, それぞれのポートについて軽く説明を入れておく

Port 25

  • 1982年の8月にIETF(Internet Engineering Task Force)に提出されたRFC821に記述
  • Port25がemailのためのデフォルト交信ポートとされていた
  • 元々は交信用とされていたが, 現在は送信用として広く使われている

Port 465

  • 1997年にIANAがSMTPS(smtp over SSL)のためのポートとして登録
  • smtpをSSLでwrapするもの
    • 他のover SSLと同じ
  • 1998年に, 後述するSTARTTLS over smtp(Port 587)の登場によって, Port465は取り消された
  • 古いクライアントがsmtpsを使っている場合でもない限り, 過去の産物にすぎない
  • smtpの標準として既に受け入れられていない

Port 587

  • 1998年にIFTF提出されたRFC 2476に記述
  • 大体のメールサーバはサポートされている
  • Port 25の代わりに送信用として推奨されている

Port 587 is reserved for email message submission as specified in this document. Messages received on this port are defined to be submissions.

  • Port 587とTLS暗号化によってメールが送信される

Port 2525

  • IETFにもIANAにも是認されていない非公式のsmtpポート
  • Port 587の代わりにsmtpのために使われることがある
  • well-knownポート外なので, customer ISPおよびクラウドホスティングプロバイダによってサポートされる
  • Port 587の代わりに使われるほどなので, TLS暗号化もサポートしている

teratailの質問について

調べると, 次のteratailのページを見つけた。

SMTPの各ポート番号25,587,465の違いについて

そこの回答欄を見ていると以下のように書かれていた。

25番ポート 暗号化なし通信。認証は使えない

目的: 主に受信用のポート。特定のネットワークアドレス(社内など)からから認証なしで送信する用途にも使われる。 暗号化(STARTTLS): なし、または、任意(クライアントが望めば) 認証: なし。認証を任意として、587番ポートの役割も兼ねることも。

587番ポート STARTTLSを使用するならばこれ。認証は使える

目的: 主に送信用のポート。認証に成功した場合のみ送信を許可。 暗号化(STARTTLS): (一般的に)必須。 認証: (一般的に)必須。

465番ポート SMTPS(over SSL)を使用するならばこれ。認証は使える。

目的: 主に送信用のポート。認証に成功した場合のみ送信を許可。 暗号化(SMTPS): 必須。 認証: (一般的に)必須。

以上が一般的な使われ方だと思いますが、「(一般的に)」と書いたところは MTA の設定によります。 例えば、587,465番ポートでも、特定のネットワークアドレスからは認証なしで送信許可とか、 普通はやりませんが、認証が必須なのに暗号化なしとかにもできます。

25番ポートは受信用のポート?

このうち, 気になったのがport25の以下の文面である。

目的: 主に受信用のポート。

smtpって送信用ではなかったの?

ということで, rfc5321に目を通すと以下のように書かれていた。

4.5.4.2. Receiving Strategy The SMTP server SHOULD attempt to keep a pending listen on the SMTP port (specified by IANA as port 25) at all times. This requires the support of multiple incoming TCP connections for SMTP.

要するに, 25番ポートはSMTPのための複数の入力TCP接続のサポートを必要とする訳だ。だから, 受信用のポートと書かれていたのかもしれない。なるほど。

Posted on Jan 3, 2020