Guide

メールから OTP コードを抽出——受信箱をスキップ

2FA コードが届くたびに受信箱に切り替えるのはやめましょう。nylas otp get は最近のメールから認証コードをスキャンし、1秒以内にクリップボードにコピーします。すべての主要メールプロバイダに対応——ブラウザ不要。

Written by Nick Barraclough Product Manager

Reviewed by Qasim Muhammad

VerifiedCLI 3.1.1 · Gmail, Outlook, Yahoo, iCloud, IMAP · last tested April 11, 2026

なぜメールからの OTP コード抽出は難しいのか?

メールからの OTP コード抽出が難しいのは、認証のたびに 30–60 秒のコンテキストスイッチでワークフローが中断されるからです——受信箱を開き、メッセージを探し、スタイル付きテンプレート内の 6 桁コードを見つけ、ログインプロンプトに入力し、元の作業に戻る。

インテグレーションテストやエンドツーエンドフローを実行する開発者にとって、問題はさらに深刻です。コードをプログラム的に抽出するには、各プロバイダ向けのカスタムメールポーリングロジックを書く必要があります——Gmail API、Microsoft Graph、IMAP idle——実際のテストが始まる前に。 FIDO Alliance Online Authentication Barometer によると、認証が遅いとユーザーは頻繁にサインアップを放棄し、脆弱な OTP 抽出コードは不安定な E2E テストスイートの主要原因の1つです。

Nylas CLI は1つのコマンドで両方の問題を解消します: nylas otp get が Gmail、Outlook、Yahoo、iCloud、あらゆる IMAP サーバーの最近のメッセージをスキャンし、コードを抽出して 1 秒以内にクリップボードにコピーします。

1. インストール

Nylas CLI のインストールは Homebrew コマンド1つで、ほとんどのマシンで 30 秒以内に完了します。CLI バイナリは約 25 MB で、macOS、Linux、Windows に対応。Homebrew は macOS と Linux ユーザーにとって最速のパスです。

brew install nylas/nylas-cli/nylas

シェルスクリプト、PowerShell、Go のインストール方法は 入門ガイドを参照してください。インストール後、バージョンを確認して CLI が利用可能であることを確認します:

nylas --version

2. 認証

認証により Nylas CLI がメールアカウントに接続され、OTP コードのメッセージスキャンが可能になります。CLI は 6 種類のプロバイダ——Gmail、Outlook、Exchange(EWS)、Yahoo Mail、iCloud Mail、汎用 IMAP——すべてを1つの認証ステップでサポート。プロバイダごとの設定は不要です。

Nylas Dashboard から API キーを生成し、CLI に渡します。認証情報はローカルの ~/.config/nylas/ に保存され、第三者に送信されることはありません。

nylas auth config --api-key YOUR_API_KEY

3. 最新の OTP コードを取得

nylas otp get コマンドは最近のメールをスキャンし、最新の認証コードを抽出してクリップボードにコピーします——通常 1 秒以内に完了。メールベースの OTP コードの多くは 6 桁で、 RFC 6238(TOTP)で定義されるように 5–10 分以内に失効します。

引数なしでコマンドを実行すると、デフォルトアカウントから最新のコードを取得します。CLI は最近のメッセージから一般的な OTP パターン(認証メール内の数値コード)を検索し、マッチを返します。

nylas otp get
✓ OTP found

  Code:    847291
  From:    noreply@github.com
  Subject: Your GitHub verification code
  Copied to clipboard

スクリプティングや CI/CD パイプライン——クリップボードの副作用が不要な場面——では、 --raw フラグでコードのみを出力します。シェル変数に値をキャプチャするのが簡単になります。

nylas otp get --raw
847291

クリップボードにコピーせずにターミナル出力にコードを表示するには、 --no-copy フラグを使用します。画面でコードを読んで手動入力したい場合に便利です。

nylas otp get --no-copy

4. 受信 OTP コードを監視

nylas otp watch コマンドは受信箱を継続的にポーリングし、新しい OTP コードが届くたびに表示します。認証メールを送信するアクションをトリガーし、いつ届くかわからない状態でコードをキャプチャする必要がある場合に有用です。デフォルトのポーリング間隔は 5 秒で、ほとんどのコードは配信後 5–10 秒以内に表示されます。

引数なしでコマンドを実行して監視を開始。CLI は Ctrl+C を押すまでポーリングを続けます。各コードはタイムスタンプと送信元アドレスとともに表示されます。

nylas otp watch
Watching for OTP codes... (Ctrl+C to stop)

  [14:23:05] 847291  — noreply@github.com
  [14:31:18] 193047  — security@google.com

--interval フラグでポーリング頻度を秒単位で設定します。間隔が短いほどコードを早くキャッチできますが、API リクエストが増えます。多くのユースケースでは 5–10 秒が速度と効率のバランスを取ります。

nylas otp watch --interval 5

リモート SSH セッションや Docker コンテナなど、クリップボードにアクセスできないターミナルで実行する場合は、 --no-copy とカスタム間隔を組み合わせてください。

nylas otp watch --no-copy --interval 10

5. 設定済みアカウントの一覧

nylas otp list コマンドは Nylas CLI に接続されたすべてのメールアカウントとプロバイダタイプを表示します。複数のアカウントを使用する開発者——たとえば個人の Gmail と法人の Outlook テナント——は、コードを取得する前にどのアカウントが利用可能かを確認できます。CLI は1つの設定で最大 6 種類のプロバイダをサポートします。

出力の各行はメールアドレスを検出されたプロバイダにマッピングします。 nylas otp get を呼び出す際にどのアカウントをターゲットにするか簡単に特定できます。

nylas otp list
  ACCOUNT                        PROVIDER
  user@gmail.com                 Gmail
  work@company.com               Outlook
  personal@icloud.com            iCloud

デフォルトではなく特定のアカウントからコードを取得するには、メールアドレスを引数として渡します。複数のアカウントに最近の OTP メールがある場合の曖昧さを避けられます。

nylas otp get user@gmail.com

6. スクリプトで OTP コードを使用

--raw フラグで nylas otp get はシェルスクリプト、CI/CD パイプライン、エンドツーエンドテストフレームワークの組み合わせ可能なビルディングブロックになります。フォーマットなしのコードのみを出力するため、標準のコマンド置換で直接変数にキャプチャできます。

以下のスクリプトは完全な OTP 認証フローを示しています:API 呼び出しでパスワードリセットメールをトリガーし、配信を 3 秒待ち、コードを抽出して送信します。本番 CI 環境では、このパターンが 20–50 行のカスタムプロバイダ固有ポーリングロジックを置き換えます。

#!/usr/bin/env bash
set -euo pipefail

EMAIL="user@example.com"
API_BASE="https://app.example.com/api"

# OTP メールをトリガー
curl -s -X POST "$API_BASE/auth/send-otp" \
  -H "Content-Type: application/json" \
  -d "{"email": "$EMAIL"}"

# 配信を待ってからコードを取得
sleep 3
CODE=$(nylas otp get --raw)

echo "Got code: $CODE"

# コードを送信
curl -s -X POST "$API_BASE/auth/verify-otp" \
  -H "Content-Type: application/json" \
  -d "{"email": "$EMAIL", "code": "$CODE"}"

echo "Verified."

GitHub Actions などの CI/CD 環境では、Nylas API キーをリポジトリの Secret として保存します。以下の例は 2 ステップのワークフローを示しています:最初のステップで認証を設定し、2番目のステップで OTP テストスクリプトを実行。このアプローチにより認証情報がソースコード管理から完全に排除されます。

# GitHub Actions の例
- name: Authenticate Nylas CLI
  run: nylas auth config --api-key ${{ secrets.NYLAS_API_KEY }}

- name: Run OTP flow test
  run: ./scripts/test-otp-flow.sh

CLI は NYLAS_API_KEY 環境変数を自動的に読み取るため、エフェメラルな CI 環境では nylas auth config ステップをスキップできます。ジョブ間でファイルシステムが永続化されないコンテナやサーバーレスランナーには、これが推奨されるアプローチです。

# 環境変数を設定——CLI が自動的に読み取る
export NYLAS_API_KEY=your_key
CODE=$(nylas otp get --raw)

次のステップ