Guide
メールから OTP コードを抽出——受信箱をスキップ
2FA コードが届くたびに受信箱に切り替えるのはやめましょう。nylas otp get は最近のメールから認証コードをスキャンし、1秒以内にクリップボードにコピーします。すべての主要メールプロバイダに対応——ブラウザ不要。
Written by Nick Barraclough Product Manager
Reviewed by Qasim Muhammad
なぜメールからの 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 --version2. 認証
認証により 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_KEY3. 最新の 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 --raw847291クリップボードにコピーせずにターミナル出力にコードを表示するには、 --no-copy フラグを使用します。画面でコードを読んで手動入力したい場合に便利です。
nylas otp get --no-copy4. 受信 OTP コードを監視
nylas otp watch コマンドは受信箱を継続的にポーリングし、新しい OTP コードが届くたびに表示します。認証メールを送信するアクションをトリガーし、いつ届くかわからない状態でコードをキャプチャする必要がある場合に有用です。デフォルトのポーリング間隔は 5 秒で、ほとんどのコードは配信後 5–10 秒以内に表示されます。
引数なしでコマンドを実行して監視を開始。CLI は Ctrl+C を押すまでポーリングを続けます。各コードはタイムスタンプと送信元アドレスとともに表示されます。
nylas otp watchWatching 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 105. 設定済みアカウントの一覧
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.com6. スクリプトで 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.shCLI は NYLAS_API_KEY 環境変数を自動的に読み取るため、エフェメラルな CI 環境では nylas auth config ステップをスキップできます。ジョブ間でファイルシステムが永続化されないコンテナやサーバーレスランナーには、これが推奨されるアプローチです。
# 環境変数を設定——CLI が自動的に読み取る
export NYLAS_API_KEY=your_key
CODE=$(nylas otp get --raw)次のステップ
- Playwright による E2E メールテスト — OTP 抽出と完全なエンドツーエンドテストフローを組み合わせる
- AI エージェントのアイデンティティとしてのメール — メールベースの認証で AI ワークフローを認証
- CI/CD での PowerShell メール — メール依存パイプラインの Windows ネイティブ自動化
- Nylas CLI 入門 — 5 分以内に最初のアカウントを接続
- コマンドリファレンス — すべてのフラグ、サブコマンド、使用例
- RFC 6238 -- TOTP: Time-Based One-Time Password — メールから抽出する時間ウィンドウコードの仕様