SMTPとは?メール送受信における役割とSMTPコマンド/応答コードを詳しく解説
日々何気なく送っているメールですが、その送受信を行う裏にはさまざまな仕組みが隠れています。その仕組みの一部であるSMTPは、動作しなければメールの送受信自体ができなくなってしまう重要なプロトコルです。SMTPの仕組みを押さえておけば、メールの送受信についての理解が深まるでしょう。
この記事では、メールの送受信におけるSMTPの役割、SMTPコマンドとその応答コードについて解説します。
SMTPとSMTPサーバー
SMTPとSMTPサーバーは、メールのやり取りに欠かせない存在です。まずは、そのSMTPとSMTPサーバーについてわかりやすく解説します。
SMTPは通信プロトコルの一種
SMTPとは、Simple Mail Transfer Protocolの略で、メールを送信する際に使う通信プロトコルです。
メールソフトで作成したメールを自社のメールサーバーに送信するときや、自社のメールサーバーから相手先のメールサーバーへメールを配送するときに使います。
私たちがメールのやり取りをしている裏では、必ずこのSMTPが動作しており、SMTPというプロトコルがなければ、メールの送受信ができません。
なお、プロトコルとはコンピューター同士通信をする際に決められた、約束事を指します。製造メーカーや国など、条件の違うコンピューターが適切な通信を行うためには「守るべき共通のルール」が必要です。その「守るべき共通のルール」として定義されたのが通信プロトコルです。
例えば、私たちが普段何気なく会話できているのは「利用する言語」のプロトコルが決まっているからだと言えます。話し手と聞き手の間で使う言語のプロトコルがなければ、スムーズにコミュニケーションを取るのは難しいでしょう。はじめから日本語を使うというプロトコルがあれば、スムーズにコミュニケーションを取れるのです。
SMTPサーバーの役割
SMTPサーバーはメールを送信(配送)する際に必要になるサーバーです。ユーザーが例えばMAや、CRMなどメール配信システムを使ってメールを送信すると、メール配信システムはSMTPサーバーにメールの配送を依頼します。
メールの配送を依頼された送信側のSMTPサーバーは、ユーザーから送信されたメールを、送信の相手先のメールアドレスを管理するSMTPサーバーまで送る役割があるのです。
SMTPと一緒に覚えておきたい用語
SMTPがメールのやり取りに欠かせないものであることがわかりました。では、併せて覚えておきたいその他の用語についても見てみましょう。
DNS、DNSサーバー
DNSとは、Domain Name Systemの略で、Webサイトのドメイン名とIPアドレスを紐付けるシステムのことです。
Webサイトの住所には、コンピューター向けの「IPアドレス」と、人間向けの「ドメイン名」の2種類が存在しています。IPアドレス(○○○.○○○.○○○という数字の羅列)の覚えにくさを解消するため、覚えやすいドメイン名(○○○.com や ○○○@○○.co.jp など)が作られました。
Webサイトのデータはインターネット上のサーバー内に格納されており、それぞれの格納場所に付与されているIPアドレスが、各サイトの住所となるのです。
しかし、私たちがWebサイトを閲覧する際、WebブラウザにはIPアドレスではなくドメイン名(URL)が入力されます。ドメイン名の入力でサイトが表示されるのは、IPアドレスとドメイン名が紐づいているためです。ドメイン名を入力すると紐づいているサーバーのデータが呼び出される仕組みになっています。
このようなIPアドレスとドメイン名を紐づけ・変換させる役割を持つシステムをDNS(Domain Name System)と呼び、DNSを実行する機器をDNSサーバーと呼びます。
POP、POPサーバー
POPとは、Post Office Protocolの略で、メールを受信する際に使う通信プロトコルです。そのため、POPはSMTPとは対となる機能で、メールを受信側のコンピューターに取り出すために使われます。
例えば、自宅に手紙を届けるのがSMTPの役割だとすると、POPはポストから手紙を取り出すのが役割です。
そして、POPサーバーは、POPに対応している受信サーバーを指します。
IMAP、IMAPサーバー
IMAPとは、Internet Message Access Protocolの略で、電子メールを受信する際に使われます。
IMAPは、メールサーバーに転送されたメールを閲覧するためのプロトコルです。IMAPを使用してGmailやYahooメールなどにログインすれば、どの端末からでもメールを確認できます。
メール受信の際に使用される面ではPOPと似ていますが、POPはメールをクライアントPCにダウンロードできる、IMAPはメールサーバーのメールを閲覧できるという点で異なります。
メール送受信の仕組み
メール送受信の基本的な流れは以下の通りです。メールはいくつかのサーバーを介して受信者に届きます。
1.メールを送信する
2.送信したメールが送信側のメールサーバーに届く(SMTP)
3.自分のメールサーバーとDNSサーバーがやり取りし、配送先のIPアドレスを調べる
4.自分のメールサーバーから相手のメールサーバーへメールを転送(SMTP)
5.相手のメールサーバーから相手のメールソフトにメールが届く(POPまたはIMAP)
以上のように、メール送信ひとつとってもさまざまな機器や仕組みが関わっていることがわかります。
特にSMTPはメールの送受信の要であり、重要な役割を果たしているのです。
メーラーとSMTPメーラーの間では何が起こっている?
メーラーとは、メールの作成や閲覧、送受信を行うためのソフトです。メーラーやSMTPサーバーそれぞれの役割について解説してきましたが、実際にメーラーとSMTPサーバーの間では、どのようなやり取りが行われているのでしょうか。仕組みをわかりやすく解説します。
通信の順序
メーラーとSMTPサーバー間の動きを技術的な面から見ていきます。通信の順序は以下のような順序で、対話型のプロセスが進行していきます。
上記の図について補足すると、SMTPでは、TCPコネクション(SMTPセッション)を確立させます。基本知識として、その際に使用する「TCPポート番号25=SMTP」ということを覚えておきましょう。
セッションとは、接続を確立してから切断するまでの一連の通信を指します。また、TCPによってコネクションの確立が完了すると、SMTPコマンドを発行します。それと並行してメーラーとメールサーバーがデータ転送に関する制御とメール転送を行うというのが一連の流れです。
SMTPコマンドを送ると、サーバー側からはSMTP応答コードが返答されます。それに対し、対話型の処理を行うのがSMTPです。
・TCP
Transmission Control Protocolの略で、別名伝送制御プロトコルとも呼ばれています。その名の通り「伝送/通信」の制御が目的のプロトコルです。
・TCPコネクション
セッションが確立された後の実際の通信を指します。注意点として、セッションが確立してもデータの送受信は行われません。TCPコネクションは、実際にデータを送信し、受信することができるようになるまでのプロトコルです。
SMTPコマンド
SMTPコマンドの役割は、送るデータの種類を決定したり、通信の開始通知を行ったりなどさまざまです。
前述の『通信の順序』で解説したように、SMTPコマンドを決まった順序でメールサーバーへ発信すると、一連のメール送信の手順が完了します。
その後は、POPによって宛先メールサーバーから受信者へメール転送がなされます。これがメール送受信の仕組みです。
SMTP応答コード
SMTP応答コードとは、SMTPコマンドに対する応答のことです。簡易的にまとめると、200番台は処理の成功、400番台は一時的なエラー(サービスの利用不可など)、500番台は恒久的なエラー(コマンドの不正など)を知らせます。
応答コードの詳細についてはRFCに規定されている一般的なものと、大手のISPなどが独自に定めているものもあり、下記のようなサイトから網羅性の高い情報を得ることができるので、詳しく知りたい方はこちらをご確認ください。
Googleのヘルプサイト「SMTP エラー メッセージについて」
SMTPリレーサービス
ここまで説明したSMTPはあくまで、一般的な送信手法の場合であり、ビジネスの用途で一日たくさんのメールを送る際は多くの場合、blastengineなどの外部のSMTPリレーサービスを使って安定的な配信をしています。
ビジネス用途でのSMTPの問題点~厳しいスパム規制~
総務省のレポートによると2022年に国内で受信したメールの37%が迷惑メールだったというデータがあります。昨今においても迷惑メールは膨大で、ドコモやauやソフトバンクといった大手企業は迷惑メールに対しての対策を強化しており、メールの送信者に様々なルールを守ることを企業に求めています。
そのルールの中にはやや厳しいものも多く、「多くのメールを短時間で一つのIPから送らないようにする」といったものや、「多くのメールを同じIPから送る場合は毎日一定量のメールを送信しなければならない」といった、企業が単独で実現するにはメンテナンスの手間がかかりすぎるようなものもあります。
さらに、このルールを守らないと、送信したメールの大半が迷惑メールと誤判定され、ユーザーに届かなかったり、迷惑メールフォルダに入ってしまうなどの悪影響が発生してしまいます。
SMTPリレーサービスの役割
このような問題を解決することができるのが、SMTPリレーサービスです。メール配信の専門事業者が提供するSMTPサービスには、複数のIPを並列利用する機能や、各宛先ドメインの指定するポリシーやルールへの対応などがあり、多くのメールを送っても迷惑メールにならないようにする仕組みを提供しています。
また、大量のメールを送るにはメールサーバーの増強コストと管理コストがかかりますが、SMTPリレーサービスではこれを大幅に抑えることが可能です。
そういった理由から、ビジネスシーンでのメール送信には基本的にSMTPリレーサービスを利用することが推奨されています。
また、blastengineは簡単にメールの大規模高速配信が可能なSMTPリレーサーバーを提供していますが、同時にメールサーバーを必要としない、APIでのメール送信の仕組みも提供しております。
すぐに始められるトライアルアカウントもご用意しておりますので、是非試してみてください。
まとめ
SMTPは、メールを送信する際に使われ、メールのやり取りをする際に欠かせない通信プロトコルです。また、メールの送受信はさまざまなサーバーをまたいで行われるため、SMTP・DNS・POP・MAPについても併せて理解しておく必要があります。
メールの一連の情報を把握することで、トラブルが起きた際にはどこに問題があるのか、的確な判断ができるでしょう。
また、大量のメールを送るビジネス用途では、SMTPリレーサービスを用いることで、安定的なメール送信を実現することが可能です。