IMAPとは?POP3・SMTPとの違いを解説
要旨
IMAPとは、サーバー上のメールを同期して読むためのプロトコルです。POP3はメールをダウンロードし、SMTPは送信を担います。安全なポートと検証手順を解説します。

IMAPとは、POP3と同じく、メールクライアントがメールボックスからメールを受信するためのプロトコルです。一方、SMTPはメールを送信・中継します。メッセージの送信とサーバー間の転送にはSMTPが必須で、受信メールの閲覧には通常IMAPかPOP3のどちらかを使います。いずれも特定プロバイダーの規則ではなくIETFのプロトコルなので、共通の施行日はありません。送信にはTLS付きのSMTPを使い、受信はサーバー上のメールを同期するならIMAP、ダウンロード型ならPOP3を選びます。
概要
要点
- SMTPは送信メールをサーバーに渡し、メールサーバー間で中継します。
- IMAPはメールボックスの状態をサーバー上に保ち、クライアントと同期します。
- POP3はクライアントにメッセージを取り込むだけで、複数端末間のフォルダ同期は定義していません。
- RFC 8314は、メールの受信と送信に暗黙的TLSのサービスを推奨しています。
- 587番はメッセージ送信用のポートです。993番と995番は、IMAPとPOP3の暗黙的TLS用に登録されたポートです。
- SMTP、IMAP、POP3はメールを運ぶ仕組みです。SPF、DKIM、DMARCなどの送信者認証の代わりにはなりません。
対象となる人
メールクライアント、メールボックスサービス、ヘルプデスクのワークフロー、管理型のメール環境を設定するすべての人が対象です。送信側のクライアントにはSMTPの送信設定が必要です。受信側のクライアントには受信用のプロトコルが必要で、一般的にはIMAP、環境によってはPOP3を使います。
SMTPは、メールユーザーエージェントがメッセージを送信するときにも、メール転送エージェントが宛先へ中継するときにも使われます。SMTPはRFC 5321で定義されています。クライアントが送信サーバーにメールを渡すときのMessage Submissionプロトコルは、RFC 6409で定義されています。
IMAPとPOP3が働くのは、メールボックスサービスがユーザー宛てのメールを受け取った後です。IMAP4rev2はRFC 9051、POP3はRFC 1939で定義されています。どちらのプロトコルも、他のドメインがSMTPメールをどこで受け取るかは決めません。隣接するDNS側の作業は、MXレコードと関連するメール転送セキュリティのガイドで扱います。
Webメールの利用者は、ブラウザがプロバイダーのWebアプリとやり取りするため、これらの設定を目にしないことがあります。その裏側でもプロバイダーはメールプロトコルとストレージを使っていますが、利用者がIMAPやPOP3を直接設定しているとは限りません。
各プロトコルの要件
SMTP:メッセージの送信と中継
SMTPはプッシュ型のプロトコルです。送信側のクライアントやサーバーが接続を開き、自身を名乗り、エンベロープの送信者と宛先を示して、メッセージのデータを転送します。SMTPには、メールボックスを閲覧する機能も、既読状態を同期する機能もありません。
EHLO mailclient.yourdomain.com
MAIL FROM:<sender@yourdomain.com>
RCPT TO:<recipient@example.net>
DATA
From: sender@yourdomain.com
To: recipient@example.net
Subject: Illustrative SMTP message
Example message content.
.
QUIT上記のコマンドは説明用の例です。本番サーバーでは、必要な認証とTLSの設定なしに使わないでください。
エンドユーザーからの送信について、RFC 6409は587番ポートを割り当て、送信サーバーはSTARTTLS拡張に対応しなければならない(MUST)と定めています。送信サーバーは独自のポリシーに応じて認証を求めることができます。25番ポートはメッセージ転送用に定義されたSMTPの中継ポートのままですが、クライアントからの送信には通常使いません。
IMAP:サーバー上のメールボックス
IMAPでは、サーバーが保持するメッセージとメールボックスの状態にクライアントがアクセスします。RFC 9051は、メールボックスの選択、メッセージの取得、検索、フラグの変更といった操作を定義しています。状態がサーバー側にあるため、同じメールボックスと同期する複数のIMAPクライアントは、同じフォルダとフラグを確認できます。
a001 LOGIN user@example.com password
a002 SELECT INBOX
a003 FETCH 1:* (FLAGS)
a004 LOGOUTコマンドは説明用の例です。実際のパスワードを端末のログ、チケット、ドキュメントに残さないでください。
IMAPは、すべてのクライアントのローカルキャッシュが常に同じ状態になることまでは保証しません。クライアントは切断中にキャッシュで作業し、後からサーバーと整合を取ることもできます。このプロトコルの要点は、メールボックスとその状態がサーバーを通じてクライアントから利用できることです。
POP3:クライアントへのメッセージ取り込み
POP3は、よりシンプルなモデルのメールボックスアクセス用プロトコルです。RFC 1939は、認証、トランザクション、更新の各状態を定めています。クライアントは通常、メッセージを一覧して取得し、セッション終了前に削除のマークを付けることができます。
USER user@example.com
PASS password
STAT
LIST
RETR 1
QUITコマンドは説明用の例です。テスト用スクリプトや共有ログに実際の認証情報を使わないでください。
POP3は、IMAPのようなサーバー側のフォルダ、フラグ、既読状態の同期を定義していません。取得したメッセージをサーバーに残す設定もできますが、それはクライアントとサーバーの設定上の判断であり、IMAPの同期とは別物です。ノートPC、スマートフォン、Webメールでフォルダと既読状態をそろえたいなら、通常はIMAPが適しています。

TLS:プロトコルの接続を保護
RFC 8314は、平文を使わないメールアクセスを推奨しています。暗黙的TLS用の登録ポートも更新しており、送信は465番、IMAPは993番、POP3は995番です。既存の平文ポートを暗号化に切り替える仕組みとして、STARTTLSについても説明しています。
設定には、メールボックスや送信サービスのプロバイダーが公開している値を使ってください。RFCに登録されていても、特定のプロバイダーがすべてのポートや認証方式に対応しているとは限りません。プロバイダーによっては、指定のTLSバージョン、特定のホスト名、OAuthベースの認証、その他独自の設定を求めます。
正常に動いているメールクライアントを、保存とバックアップの挙動を確認せずにIMAPからPOP3へ切り替えないでください。POP3クライアントは取得後にサーバーからメッセージを削除する設定にでき、その場合ほかのクライアントからは読めなくなります。
要件の適用時期
SMTP、IMAP、POP3には、一斉に導入される期日はありません。いずれも確立したIETFの仕様で、対応を選んだサービスが使っています。
現行のSMTP仕様はRFC 5321で、2008年10月に公開されました。2011年11月公開のRFC 6409はメッセージ送信を定義し、RFC 4409を更新しています。IMAP4rev2は2021年8月公開のRFC 9051で定義され、RFC 3501を廃止しました。POP3は引き続き1996年5月公開のRFC 1939で定義されています。2018年1月公開のRFC 8314は、メールの受信と送信に使うTLSサービスポートの登録を更新しています。
プロバイダーは、これらの公開日とは関係なく、対応するクライアント設定を変更することがあります。ホスト名、ポート、TLSモード、認証方式を変える前に、プロバイダーの最新の設定ドキュメントを確認してください。
設定方法
1. 送信と受信の役割を確認する
プロバイダーが提供する送信サーバーのホスト名と、受信メールボックスのホスト名を記録します。両者が同じホストだと決めつけないでください。
送信にはSMTPを使います。IMAPかPOP3を選ぶのは受信側だけです。アカウントは、SMTPとIMAP、またはSMTPとPOP3の組み合わせで使えます。
2. メールボックスの使い方でIMAPかPOP3を選ぶ
端末間でメールボックスの状態を共有したい、サーバー側のフォルダを使いたい、Webメールとネイティブアプリの両方で使いたい場合はIMAPを選びます。
POP3を選ぶのは、プロバイダーが対応していて、ダウンロード型の運用を意図している場合だけにします。クライアントがメッセージをサーバーに残すかどうかは明示的に決めてください。その設定は、まず本番以外のメールボックスで試します。
3. TLSとプロバイダー対応の認証を設定する
プロバイダーのドキュメントにあるホスト名、ポート、TLSモード、認証方式を使います。RFC 8314は、送信用に465番、IMAP over TLS用に993番、POP3 over TLS用に995番を登録しています。
ホスト名や信頼性のエラーを回避するために、証明書の検証を無効にしないでください。設定したサーバー名を修正するか、プロバイダー側の証明書の問題をサポート窓口を通じて解決します。
4. メールボックスへのアクセスとドメイン認証を切り分ける
SMTPの転送設定が正しくても、そのドメインで送ったメールが認証に通る証明にはなりません。送信者認証は、DNSレコード、署名の挙動、アライメント、受信側の評価で決まります。
DNSの背景としては、CNAMEとAレコードの違いとAレコードとAAAAレコードの違いを確認してください。これらのレコードはメールサービスの設定を支えることはあっても、MXレコードや送信者認証のレコードの代わりにはなりません。
設定の検証方法
設定したサービスは、4つの層に分けて検証します。
- DNS:想定するネットワークからプロバイダーのホスト名を名前解決し、期待どおりのアドレスが返るか確認します。分かるのは現時点の公開DNSの解決結果であり、サービスがそのアカウントの認証情報を受け付けるかではありません。
- ベンダー:プロバイダーの最新のクライアント設定ドキュメントと、アカウント単位のステータスページを確認します。確かめられるのは文書化された経路であり、メッセージが実際に届いたかではありません。
- メッセージ:本番と同じSMTP送信経路でテストメッセージを送ります。受信したメールボックスと生のヘッダーを調べ、想定どおりの経路で届いたか確認します。
- DMARC:集計レポートがたまったら、送信ドメインの認証とアライメントの結果を調べます。本番の送信元がDMARCに合格しているかが分かります。これはSMTPの接続確認だけでは判断できません。
公開されているメールセキュリティスコアでは、ドメインが公開しているメール認証の状態を確認できます。ただし、メールクライアントの認証情報のテスト、特定のSMTP送信が成功したことの証明、非公開のメールボックスの状態の確認、受信側の非公開の配信判断の表示はできません。一度きりのチェックと継続的な観測の違いは、アクティブ監視とパッシブ監視の違いをご覧ください。
SMTP送信を支えるドメイン認証をチェック
SMTPでメッセージは送信できますが、接続に成功しても、送信ドメインのどの本番サービスがSPF、DKIM、DMARCのアライメントに合格しているかは分かりません。
Palisadeはエージェント型のDMARCソフトウェアです。DMARC集計レポートのデータを分析し、送信元と認証やアライメントの問題を特定して、次のポリシー段階を人の確認用に提案します。メールクライアントのプロトコル設定を変えることも、DMARCポリシーを自動で変えることも、配信や受信トレイへの到達を保証することもありません。
根拠
出典と参考資料
よくある質問
よくある質問
SMTPはメールの受信に使いますか?
いいえ。SMTPはメールの転送と送信に使います。SMTPで届いたメールはメールボックスサービスが受け取り、ユーザーはIMAP、POP3、Webメール、またはプロバイダーの別の画面からアクセスします。
IMAPはPOP3よりよいですか?
はい。同じメールボックスを複数の端末で使うなら、通常はIMAPが適しています。サーバー上のメールボックスの状態と同期に対応しているからです。POP3は意図的にローカルへダウンロードする運用には合いますが、クライアント間のフォルダやフラグの同期は定義していません。
SMTPとIMAPは併用できますか?
はい。一般的な構成です。SMTPが送信を担い、IMAPがサーバーのメールボックスにある受信メールへのアクセスを提供します。
465、993、995番ポートは必須ですか?
いいえ。RFC 8314はこれらを暗黙的TLS用のポートとして登録していますが、どの接続設定を受け付けるかは、プロバイダーの最新ドキュメントで決まります。該当する平文ポートでSTARTTLSに対応するサービスもあります。
TLSを使えばSMTPのメールはDMARC認証に通りますか?
いいえ。TLSが守るのは、通信するエンドポイント間の接続です。DMARCの評価は、SPFとDKIMの認証、識別子のアライメント、届いたメッセージに対する受信側のDMARC処理で決まります。

執筆者
Ian BussieresPalisade 共同創業者・CTO
Ian BussieresはPalisade共同創業者兼CTO。PalisadeはIT部門・MSP向けのエージェント型DMARC。
Ianの記事 →