Guide

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

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

Written by Qasim Muhammad Staff SRE

Reviewed by Hazik

VerifiedCLI 3.1.1 · IMAP · last tested April 11, 2026

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

IMAP アカウントを一度接続すれば、nylas email listnylas email searchnylas 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 モード、認証方式が異なります。muttfetchmail、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 つの個別設定ブロックが必要で、パスワードを変更すると接続がサイレントに切れます。

1. Nylas CLI のインストール

Nylas CLI はランタイム依存関係のない単一バイナリとしてインストールされます。macOS と Linux では Homebrew が最速です。30 秒以内にインストールが完了し、SHA-256 チェックサムの自動検証が含まれます。バイナリサイズは約 25 MB で、x86_64 と ARM64 アーキテクチャに対応しています。

brew install nylas/nylas-cli/nylas

他のプラットフォームについては、入門ガイドでシェルスクリプト、PowerShell、Go によるインストール方法を解説しています。

2. IMAP アカウントの接続

IMAP アカウントを Nylas CLI に接続するには、Nylas ダッシュボードでの一回限りのセットアップが必要です。ダッシュボードは Fastmail、Zoho、Posteo を含む 50 以上の既知 IMAP プロバイダのサーバー設定を自動検出します。セルフホストサーバーの場合は、ホスト名とポートを手動で入力します。セットアップ全体は約 2 分です。

dashboard-v3.nylas.comにアクセスし、アプリケーションを作成して IMAP アカウントを接続します。その後、API キーで CLI を設定します:

nylas auth config
# プロンプトで API キーを貼り付け

# 接続の確認
nylas auth whoami
# => Authenticated as you@fastmail.com (IMAP)

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

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

# --grant フラグでアカウントを切り替え
nylas email list --grant "you@fastmail.com" --limit 5
nylas email list --grant "you@selfhosted.org" --limit 5
nylas email list --grant "you@comcast.net" --limit 5

# 特定のアカウントで検索
nylas email search "invoice" --grant "you@fastmail.com"

# 1 つのスクリプトで全アカウントの未読を集計
for grant in "you@fastmail.com" "you@selfhosted.org" "you@comcast.net"; do
  count=$(nylas email list --unread --json --grant "$grant" | 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 フラグは各メッセージを subjectfrom datebody などのフィールドを持つ 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 およびその他のメールプロバイダ向けの関連ワークフローを解説しています。