自由気ままに書いちゃおう

好きなことをつらつらと・・・

メール送信プロトコル(SMTPとSMTP-AUTH、SMTP認証)

今回はメール送信プロトコルであるSMTPについてです。
メール受信プロトコルはこちらです。

 

www.guri2o1667.work

 

■用語について

以下用語を使用しています。

・送信クライアント

 実際にメールを送信する立場のものです。
 人の場合やサーバの場合があります。


・受信クライアント
 メールを受け取る人やサーバのことです。

・受信サーバ
 自己所有、会社所有、クラウドサービス(gmail,outlook,hotmail,yahoo、等)のサーバのことです。メールを蓄積することができるサーバのことです。

■メール送信の流れ

メール送信の流れについてです。

① 送信クライアントから到達可能なメールサーバに対してメールを送信する。
② 受信サーバは宛先を確認し、自身が管理するメールであれば受け取ります。
③ 受信サーバが管理していないメールや受信拒否をしている場合には、当該メールを破棄します。(受信サーバの設定次第では、他受信サーバに転送することもあります。)

メール送信については、たったこれだけです。
上記①の到達可能なメールサーバは、自己所有やシステム内のメールサーバの場合やクラウドサービスの場合があります。

上記②③は受信サーバ側の設定次第のところもありますので、詳細は触れません。

■メール送信で使われるプロトコルについて

メール送信で使われるプロトコルはSMTPのみです。
誤解しやすいところとしては、下記2つはともにSMTPを利用します。
1.「送信クライアント→受信サーバ」間の通信
2.「受信サーバ→受信サーバ」間の通信

■メール送信で使われるポート番号について

メール送信で使われるプロトコルは以下の通りです。

TCP25番: SMTPプロトコルで使うWell-knownポートです。
TCP587番: サブミッションポートと呼ばれます。

なぜ2つあるのかというと、
上記1「送信クライアント→受信サーバ」は受信サーバ側の設定で現在はTCP587番が利用されていることが多いです。その理由はOP25B対策です。※OP25Bは割愛します。

上記2「受信サーバ→受信サーバ」は後者側の受信サーバの設定次第です。

■SMTP-AUTH(SMTP認証)について

SMTP-AUTHもSMTP認証も同じ意味です。
いろんなサイトでどちらも使われているので念のため。

SMTPには認証機能(ユーザ名/パスワードによる認証)がありません。
受信サーバ側のセキュリティを考えると、
「受信サーバ側で認証情報を設定し、送信クライアントはその認証情報を利用し受信サーバにメールを送信する」という流れが安全です。
※細かいことを言うとこれでもまだ安全とはいいがたいですが、認証が無いよりかは有ったほうが強固です。

ただ、送信クライアント側、受信サーバ側がともにSMTP-AUTHに対応している必要があります。

以上です。