
メールは、仕事でよく使うツールのうちの一つですが、その裏の仕組みはほとんどの人は意識していません。今回は、そんなメールを実現させるためのプロトコルSMTPについて解説していきます。
- SMTPとは
- SMTPの問題点
- SMTP-AUTHとは
- サブミッションポート
SMTPとは
SMTPは、Simpe Maile Transfer Protocol の略で、電子メールを送信するためのプロトコルです。
あくまで送信するためのプロトコルとなっていて、メールを受信する時に使用するプロトコルは、また別にあります。
ポート番号は25番を使用しています。
メールを送信する際、まずはクライアントからSMTPサーバーへメールが送られます。
それを受けたSMTPサーバーは、メールの送り先をDNSのMXレコードから探し出し、送り先のメール受信サーバーへ向けてSMTPを使ってメールを送信します。
メールの送信は、このようにして成り立っています。
SMTPの問題点
SMTPは、メールを送信するためのプロトコルですが、一つ問題がありました。
それは、SMTPにはユーザー認証機能がないことです。
SMTPには、認証機能がないため、誰でも自由にSMTPサーバーへメール送信の命令を出すことが可能になっていました。
誰でも自由に利用できることは、非常に便利というメリットもありますが、一方で悪意のあるユーザーでも使用できるというデメリットをはらんでいます。
SMTPでは、ユーザーの認証機能がなかったため、正常なユーザーによるメールの送信だけでなく、悪意のあるユーザーから広告メールやスパムメールなどが無差別に送信され、メールの利用者に悪影響を及ぼしました。
メールサーバー側でも、送信元IPアドレスの制限などをして、利用者を制限するようになりましたが、共有のIPアドレスを使用している場合などには、役に立たない制限でした。
そこで、SMTPユーザーの認証を行う機能が開発されました。
SMTP-AUTHとは
SMTP-AUTHは、クライアントがSMTPサーバーへ通信をする際に、クライアントに認証を求める機能です。
つまり、メールを送信するにあたって、正規のユーザーからメール送信の命令が出ているのかを確認することができるようになりました。
クライアント側でSMTPサーバーを利用する際に、ユーザーIDとパスワードなどを使用して、SMTPサーバーの利用者を認証します。
そうすることで悪意のある不特定のユーザーにSMTPサーバーを使用されることを防げるようになりました。
また、大量の迷惑メールなどを送信したとしても、利用しているユーザーをSMTPサーバー側で管理できているため、ユーザーの停止などをして被害を最小限に抑えることができるようになりました。
サブミッションポート
サブミッションポートとは、ユーザーのメールクライアントからSMTPサーバーへメールを送信ではなく投稿するために使用するポートのことです。
標準では、587番ポートを使用します。
SSL/TLS接続の場合には、465番ポートが標準です。
これまでお伝えしてきたように25番ポートは、迷惑メールなどに悪用されてきました。
その結果として、多くのISPでは25番ポートを使用した外部への通信をブロックするようになりました。
そのため、ユーザーからの送信命令については587番ポートを使用することで、そのブロックを回避するような運用が現在では主流になっています。