Guide

IMAP CLI:任意のサーバーからメールを読む

IMAP CLI を使ってターミナルから Fastmail、Zoho、ProtonMail Bridge、Dovecot、その他の IMAP サーバーのメールを一覧表示、検索、閲覧。IMAP は Gmail、Outlook、Exchange 以外のすべてのメールプロバイダを支えるプロトコルです。

Written by Qasim Muhammad Staff SRE

Reviewed by Hazik

Verified — CLI 3.1.1 · IMAP · last tested April 11, 2026

ターミナルから IMAP CLI を使うには?

IMAP アカウントを一度接続すれば、nylas email list、nylas email search、nylas email read が使えます。Fastmail、Zoho、ProtonMail Bridge、Dovecot、ISP メールボックスに、OAuth ベースのプロバイダと同じターミナルワークフローを提供します。

IMAP コマンドラインツールとして、CLI は IMAP 接続をコマンドラインから一度テストした後、mutt、fetchmail、imaplib の個別設定を維持する代わりに正規化されたメールコマンドを使い続けたい場合に便利です。

IMAP は大手ホスティングプロバイダ以外のメールの基盤です。

IMAP(RFC 3501、2003 年公開)は、Big Three(Google、Microsoft、Apple)以外のプロバイダのメールアクセスを支えるプロトコルです。Gmail と Outlook が個人向けメールを支配していますが、ビジネスや教育機関のメールの相当部分は依然として IMAP 専用サーバーで運用されています。

セルフホストのメール管理者、ISP アカウントユーザー、大学の学生、Fastmail や Posteo のようなプライバシー重視プロバイダのユーザーはすべて IMAP に依存しています。プロトコル自体は機能しますが、コマンドラインから IMAP クライアントを設定するのは大変です。

IMAP 設定の問題

IMAP サーバーごとにホスト名、ポート、TLS モード、認証方式が異なります。mutt、fetchmail、Python の imaplib で接続するには 4 つすべてを正確に知る必要があります。1 つでも間違えると、30 秒間接続タイムアウトを眺めた後に不可解なエラーが表示されます。

1 つのプロバイダ向けの典型的な .muttrc 設定は以下のようになります:

# Fastmail 用 .muttrc — 1 アカウントで 8 行の設定
set imap_user = "you@fastmail.com"
set imap_pass = "app-specific-password-here"
set folder = "imaps://imap.fastmail.com:993/"
set spoolfile = "+INBOX"
set record = "+Sent"
set postponed = "+Drafts"
set ssl_starttls = yes
set ssl_force_tls = yes

これを持っている IMAP アカウントの数だけ掛けてください。さらに自己署名証明書のセルフホストサーバー、別のポートを使う ISP アカウント、ポート 143 の STARTTLS のみをサポートする大学アカウントを加えます。異なる TLS 設定の 3 つの個別設定ブロックが必要で、パスワードを変更すると接続がサイレントに切れます。

メールの一覧表示

nylas email list コマンドは、Gmail、Outlook、Exchange アカウントと同じ構文で、接続された任意の IMAP サーバーからメッセージを取得します。デフォルトでは日付順にソートされた最新 10 件のメッセージを返します。既読ステータスでのフィルタリングやフラグによる結果数の調整が可能です。

IMAP の RFC 3501 FETCH コマンドは通常、メッセージシーケンス番号とデータアイテムの指定が必要です。CLI はこれを全プロバイダで動作する単一コマンドに抽象化します。

# 最近のメッセージを一覧表示
nylas email list

# 未読メッセージのみ表示
nylas email list --unread

# 結果を 25 件に制限
nylas email list --limit 25

セルフホストメールサーバー(Dovecot、Postfix、Zimbra)

セルフホストメールサーバーは、商用プロバイダと同じ IMAP 接続フローで Nylas CLI と連携します。Dovecot プロジェクト自身の使用データによると、Dovecot だけで世界の IMAP サーバーの推定 73% を支えています。IMAP に Dovecot、SMTP に Postfix、またはMail-in-a-Box や Zimbra のようなオールインワンスタックを運用している場合でも、ダッシュボードのセットアップで必要なのはホスト名とポートだけです。

Nylas プラットフォームはセルフホストサーバーに対して TLS ネゴシエーション、コネクションプーリング、IMAP IDLE キープアライブを処理します。一般的なセルフホスト構成と Nylas ダッシュボードに入力する値:

サーバースタックIMAP ホスト名ポートTLS
Dovecot(標準)mail.yourdomain.com993Implicit TLS
Mail-in-a-Boxbox.yourdomain.com993Implicit TLS
Zimbramail.yourdomain.com993Implicit TLS
Courier IMAPmail.yourdomain.com993 or 143Implicit TLS or STARTTLS
Cyrus IMAPmail.yourdomain.com993Implicit TLS
hMailServer (Windows)mail.yourdomain.com993Implicit TLS

セルフホストサーバーを Nylas ダッシュボード経由で接続した後の CLI コマンドは、他のプロバイダとまったく同じです。CLI の使用に IMAP 固有の部分はありません。サーバーが Dovecot、Zimbra、Cyrus のいずれであっても、同じ nylas email list と nylas email search コマンドが動作します。

# セルフホスト Dovecot サーバー — Gmail や Outlook と同じコマンド
nylas email list --limit 10
nylas email search "from:client@example.com"
nylas email list --folder "Sent" --limit 5

ISP・通信事業者のメールアカウント

Comcast、AT&T、Deutsche Telekom などの ISP メールアカウントは、標準の IMAP 資格情報で Nylas CLI に接続できます。Consumer Reports の 2023 年のデータによると、推定 3,000〜4,000 万人のアメリカ人が ISP 提供のメールアドレスを使用しています。これらのアカウントは IMAP アクセスのみ提供しています。OAuth2 も REST API もなく、ユーザー名とパスワードだけです。

一般的な ISP ドメインには、Comcast/Xfinity(@comcast.net)、AT&T(@att.net、@sbcglobal.net)、Deutsche Telekom(@t-online.de)、BT(@btinternet.com)があります。ISP メールアカウントは、ISP がサーバー設定を頻繁に変更するため、従来の IMAP クライアントでは非常に不安定です。例えば AT&T は 2017 年に imap.mail.att.net から Yahoo のインフラに移行し、手動設定されたすべてのクライアントが壊れました。

以下は主要 ISP プロバイダの IMAP サーバーホスト名です。自動検出でプロバイダが見つからない場合、Nylas ダッシュボードのセットアップ時にこれらの値を入力してください。

# 一般的な ISP IMAP サーバー(Nylas ダッシュボードセットアップ時の参照用)
# Comcast/Xfinity: imap.comcast.net:993
# AT&T:            imap.mail.att.net:993
# Verizon:         incoming.verizon.net:993
# Deutsche Telekom: secureimap.t-online.de:993
# BT Internet:     imap4.btconnect.com:993

# ダッシュボードで接続後は同じコマンド:
nylas email list --limit 10

大学・教育機関のメール

大学や教育機関のメールシステムは、標準の IMAP grant フローで Nylas CLI に接続できる独立した IMAP サーバーを運用していることが多いです。2023 年の EDUCAUSE 調査によると、ヨーロッパの高等教育機関の約 40% が Google Workspace や Microsoft 365 に外注せず、自前のメールインフラを運用しています。MIT、Caltech、ほとんどのヨーロッパの研究大学がこのカテゴリに該当します。

これらのアカウントには、商用 IMAP プロバイダとは異なる特有の要件があることが多いです:

  • 学外からの IMAP アクセスに VPN が必要な場合がある
  • ポート 993 の Implicit TLS ではなく、ポート 143 の STARTTLS を使用
  • プレーンパスワードではなく Kerberos または LDAP 認証
  • アグレッシブな接続タイムアウト(IMAP 標準の 30 分に対して 5 分であることが多い)

ダッシュボードセットアップ時にサーバー情報を提供すれば、CLI が TLS ネゴシエーション、IDLE キープアライブ、タイムアウト後の再接続といった接続レベルの詳細を処理します。

TLS、ポート、STARTTLS の混乱

IMAP は 2 つのポート番号を使用します。Implicit TLS 用の 993 と STARTTLS またはプレーンテキスト用の 143 です。間違ったポートを選ぶとサイレントに接続が失敗します。2018 年公開の RFC 8314 は、すべての新規デプロイメントのデフォルトとしてポート 993 の Implicit TLS を推奨しています。にもかかわらず、IETF の 2022 年の調査では、アクティブな IMAP サーバーの 35% 以上がポート 143 で STARTTLS 接続を受け付けています。

ポート方式動作ステータス
993Implicit TLS最初に TLS ハンドシェイク、その後 IMAP推奨(RFC 8314)
143STARTTLSIMAP がプレーンテキストで接続し、TLS にアップグレードレガシー(依然一般的)
143なしプレーンテキストの IMAP(暗号化なし)非推奨 — 使用しないでください

STARTTLS 方式には既知の脆弱性があります。中間者攻撃者がクライアントに届く前に STARTTLS コマンドを除去し、プレーンテキスト接続を強制できます。これが RFC 8314 が Implicit TLS を推奨する理由です。Nylas プラットフォームは IMAP 接続に常に TLS を使用します。

IMAP vs POP3:IMAP が重要な理由

IMAP はメッセージをサーバーに保持しデバイス間で状態を同期しますが、POP3 はメッセージをダウンロードしオプションでサーバーから削除します。RFC 3501(IMAP)は RFC 1939(POP3、1996 年公開)の後継として 2003 年に公開されました。一部の古い ISP アカウントはまだ両方のプロトコルを提供していますが、サーバーサイド検索、フォルダナビゲーション、メッセージの部分取得をサポートするのは IMAP だけです。

機能IMAP (RFC 3501)POP3 (RFC 1939)
メッセージの保存先サーバー上(同期)クライアントにダウンロード(デフォルトでサーバーから削除)
複数デバイス対応 — 全クライアントが同じ状態を参照非対応 — 各クライアントが個別にダウンロード
フォルダ対応対応(INBOX、Sent、カスタムフォルダ)非対応(受信箱のみ)
検索サーバーサイド SEARCH コマンド非対応 — 先にダウンロードが必要
部分取得対応(ヘッダーのみ取得、ボディパーツ取得)非対応(メッセージ全体をダウンロード)
帯域幅低い(変更分のみ同期)高い(すべて再ダウンロード)
オフラインアクセスクライアントがローカルにキャッシュ完全なローカルコピー

プロバイダが両方を提供している場合は、常に IMAP を選択してください。Nylas CLI は POP3 をサポートしていません。IMAP が CLI 操作に厳密に優れたインターフェースを提供するためです。サーバーサイド検索、フォルダナビゲーション、メッセージの部分取得はすべて IMAP が必要です。

複数 IMAP アカウントの集約

Nylas CLI は grant ID を位置引数として渡すことで、複数の IMAP アカウントを単一のコマンドラインインターフェースに集約できます。接続された各 IMAP アカウント(Fastmail、セルフホストの Dovecot、ISP アドレスのいずれも)は個別の grant となり、コマンドごとに切り替えられます。mutt などの従来の IMAP クライアントはアカウントごとに個別の設定ブロックが必要で、3〜4 アカウントに対して 3〜4 つの資格情報ファイルを管理することになります。

以下の例では、3 つの個別 IMAP アカウントに問い合わせ、1 つのシェルループですべての未読メッセージを数えます。

# grant ID を位置引数で渡してアカウントを切り替え
nylas email list "you@fastmail.com" --limit 5
nylas email list "you@selfhosted.org" --limit 5
nylas email list "you@comcast.net" --limit 5

# 特定のアカウントで検索(grant ID はクエリの後ろ)
nylas email search "invoice" "you@fastmail.com"

# 1 つのスクリプトで全アカウントの未読を集計
for grant in "you@fastmail.com" "you@selfhosted.org" "you@comcast.net"; do
  count=$(nylas email list "$grant" --unread --json | jq length)
  echo "$grant: $count unread"
done

IMAP フォルダ名は標準化されていない

RFC 3501 が定義する必須フォルダは INBOX のみであるため、IMAP フォルダ名はサーバーによって異なります。Sent、Drafts、Trash、Junk などの他のフォルダ名は標準ではなく慣習です。Courier IMAP は INBOX.Sent のようにドット区切りの名前を使い、Dovecot はプレーンな Sent、Zimbra は異なる内部名前空間で Sent を使います。RFC 6154(2011 年)はフォルダに役割をタグ付けする SPECIAL-USE 拡張を導入しましたが、採用は不均一で、IMAP サーバーの約 60% がサポートしています。

nylas folder list コマンドは、接続された IMAP サーバー上のすべてのフォルダを表示します。Nylas CLI は一般的なフォルダ名を正規化するため、サーバーの内部命名規則に関係なく Sent を使用できます。

# IMAP サーバー上のすべてのフォルダを一覧表示
nylas folder list

# プロバイダごとのフォルダ名の違い:
# Fastmail:   "Sent", "Trash", "Junk Mail", "Archive"
# Dovecot:    "Sent" or "INBOX.Sent" (namespace prefix varies)
# Zimbra:     "Sent", "Trash", "Junk"
# Zoho:       "Sent", "Trash", "Spam"
# Courier:    "INBOX.Sent", "INBOX.Trash" (dot-separated hierarchy)

# Nylas CLI は一般的なフォルダ名を正規化
nylas email list --folder "Sent"
nylas email list --folder "Drafts"
nylas email list --folder "Trash"

INBOX. プレフィックスは 2000 年代初期の Courier IMAP の慣習です。nylas folder list の出力でこれが見える場合、サーバーは旧式の名前空間を使用しています。CLI は両方のフォーマットに対応しています。

IMAP 自動化のための JSON 出力

Nylas CLI は --json フラグを使って、生の IMAP プロトコルレスポンスを構造化 JSON に変換します。ネイティブ IMAP は RFC 3501 で定義された括弧付きの S 式風フォーマットを使用しており、カスタムパーサーなしでは jq にパイプできません。--json フラグは各メッセージを subject、from、 date、body などのフィールドを持つ JSON オブジェクトとして出力し、スクリプトや AI エージェントですぐに利用できます。

JSON 出力の価値を示す 3 つの一般的な自動化パターンとして、日次受信トレイダイジェスト、完全 JSON エクスポート、送信者頻度分析があります。いずれも CLI の JSON 出力を jq で処理します。

# セルフホストサーバーからの日次受信トレイダイジェスト
nylas email list --unread --json --limit 50 | \
  jq -r '.[] | "\(.date | split("T")[0]) | \(.from[0].name // .from[0].email) | \(.subject)"' | \
  column -t -s '|'

# 最新 100 件のメッセージを分析用に JSON ファイルとしてエクスポート
nylas email list --limit 100 --json > inbox-export.json

# 最も頻繁に送信するアドレスを特定
nylas email list --limit 200 --json | \
  jq -r '[.[] | .from[0].email] | group_by(.) |
  map({sender: .[0], count: length}) |
  sort_by(-.count) | .[:10] |
  .[] | "\(.count)	\(.sender)"'

IMAP プロバイダリファレンス

このリファレンスでは、9 つの主要 IMAP プロバイダの IMAP サーバーホスト名、ポート、認証方式を掲載しています。Nylas ダッシュボードはこれらのほとんどのプロバイダの設定を自動検出しますが、自動検出が失敗した場合は手動で入力できます。ProtonMail Bridge を除くすべてのプロバイダがポート 993 の Implicit TLS を使用しています。ProtonMail Bridge はローカルのポート 1143 で動作します。

プロバイダIMAP サーバーポート認証方式
Fastmailimap.fastmail.com993アプリパスワードまたは OAuth2
Zoho Mailimap.zoho.com993アプリ固有パスワード
ProtonMail Bridge127.0.0.11143Bridge 生成パスワード
Posteoposteo.de993アカウントパスワード
GMXimap.gmx.com993アカウントパスワード
mail.comimap.mail.com993アカウントパスワード
Comcast/Xfinityimap.comcast.net993アカウントパスワード
AT&Timap.mail.att.net993アカウントパスワード
Dovecot(セルフホスト)サーバーのホスト名993サーバーの認証設定

次のステップ

IMAP メールの一覧表示後、Nylas CLI は接続されたすべてのプロバイダにわたってメールの送信、検索、カレンダーと連絡先の管理をサポートします。以下のガイドでは IMAP およびその他のメールプロバイダ向けの関連ワークフローを解説しています。