メールはどうやって送っているのか、基本のしくみを知ろう

掲載日:2020年5月18日

仕事でもチャットなどで連絡を行うことが増え、メールを使う機会が減ってきました。それでも連絡手段として今でもメールは欠かせないものです。

今回は、メールはどうやって相手に送られるのかについてざっくりご紹介します。

メールを送信する基本的なしくみとは

メールは、送信するときと受信するときでは違う方法でデータをやりとりしています。

マイクロソフトのメールソフトOutlookやグーグルのメールサービスGmailなど多くのメールソフト・サービスでは、SMTPという手順に沿って送信します。SMTPのような手順のことを通信プロトコル、と呼びます。

通信プロトコルとは、通信するときの手順・決まりを指す用語です。メールを送信するときはSMTP、受信するときはPOP3IMAPが使われています。

メールソフトを設定するときにサーバー設定として「smtp」や「pop」といった項目を入力された経験がある方もいるかと思います。それは「どういう手順でメールを送る(または受け取る)」と指定していることになります。

メール送信時の手順を簡単に説明すると、次のような流れです。

  1. 自分(送信者)のPCからメールを送信する
  2. 契約しているメールサーバー【A】に届く
  3. メールサーバー【A】がDNSサーバーへ問合せて送信先の
    住所(IPアドレス)を把握する
  4. メールサーバー【A】から送信先のメールアドレスを管理する
    メールサーバー【B】に向けてメールを転送する
  5. 受信者が契約しているメールサーバー【B】に届く
  6. 受信者のPCが自分宛のメールを受信する(POP3・IMAP)

ここで登場するのが「メールサーバー」と「DNSサーバー」です。ここでのサーバーとは、何らかの機能(サービス)を提供するコンピューターのことです。

メールサーバーとは、その名のとおりメール配送の機能を提供するコンピューターで、送信用のSMTPサーバーと受信用のPOPサーバーを合わせて一般的にメールサーバーと呼んでいます。

DNSサーバーというのはあまり聞き馴染みがありませんが、メール送受信やWebサイトの閲覧時に日々お世話になっています。メールアドレスのドメイン部分(@より後ろ)やWebサイトのURLに対応するIPアドレス情報を返す機能を提供するコンピューターです。

なぜDNSが必要なのかというと、メールを送信するときや、Webサイトを表示するときにはメールアドレスやURLの裏側に隠されているIPアドレスが必要になるからです。メールを送信するときにはメールアドレスを指定しますが、裏にあるIPアドレスから「どのメールサーバーへ届けるか」の情報を得ています。

ポート番号ってなんの番号?

SMTPなどのプロトコルとセットで登場するのが「ポート番号」です。ポート番号とは、パソコンがどの手順(プロトコル)でデータをやりとりするかがわかるようにつけられた番号のことです。

ポート番号は、よく番号付きのドアで例えられます。DNSという手順を行うためにはサーバーについている53番のドアを通ります、ということを表しています。

代表的なポート番号には、こんなものがあります。

番号 サービス 用途
20 FTP (データ) データのやりとりをする
21 FTP (制御) データ転送のコントロールを行う
22 SSH セキュアなファイル転送
25 SMTP メールを送信する
53 DNS 名前を解決する
80 HTTP Webサイトへアクセスする
110 POP3 メールを受信する
143 IMAP メールを受信する
443 HTTPS SSLでWebサイトへアクセスする
587 SMTP メールを送信。SMTP AUTH対応

表では、SMTPのポート番号は25番と587番が割り当てられています。

ここで「おや?私のメールソフトでは違う番号を入れたぞ。」と思われた方も少なくないと思います。

実はそのままのSMTPの手順ではユーザー認証の機能に対応していないため、なりすましによる迷惑メールなどを防ぐことができません。そこで最近では、メール送信時にSMTPサーバーにIDとパスワードで認証を取るSMTP認証を導入してなりすましを防ぐようにしています。25番ポートは認証のしくみに対応していないので、SMTP認証を使ったメール送信をする場合には、それに対応している587番のポート番号を使います(465番を使うこともあります)。

マイクロソフトOfficeのメールソフトOutlookでは「送信(SMTP)サーバーには認証が必要」というチェックを入れるのはSMTP認証の設定です。

普段「どうやってメールを送っているか」なんて意識することはほとんどありませんが、基本的なしくみをなんとなく理解しておくと、アプリケーションの設定を行うときや、なんらかのトラブルが起きたとき、何をしているのか、何が起きているのかを理解しやすくなるので知っておいて損はないかと思います。

(JAGAT 研究調査部 中狭亜矢)