Guide
Outlook CLI: 터미널에서 이메일 목록 조회 (Graph API 불필요)
Outlook CLI를 사용하여 터미널에서 Microsoft 365 이메일을 읽고, 검색하고, 필터링합니다. Graph API 직접 사용 시 Azure AD 앱 등록, MSAL 토큰, 권한, 재시도 로직이 필요합니다. Nylas CLI는 이 설정을 하나의 명령어로 처리하며 Gmail, Exchange, Yahoo, iCloud, IMAP에서 동일한 워크플로를 사용합니다.
Written by Nick Barraclough Product Manager
Reviewed by Qasim Muhammad
Outlook CLI로 터미널에서 이메일을 읽으려면?
Outlook 또는 Microsoft 365 메일박스를 연결한 후 nylas email list, nylas email search, nylas email read를 사용합니다. CLI는 Azure AD 앱 등록이나 Microsoft Graph API 코드 작성 없이 터미널 Outlook 워크플로를 제공합니다.
Outlook 이메일 커맨드라인 워크플로로서, Outlook.com과 Microsoft 365 계정에 걸쳐 이메일을 목록 조회, 검색, 읽기 위한 하나의 명령어 세트를 의미합니다.
Microsoft의 FY2024 실적 보고서에 따르면 Microsoft 365는 4억 이상의 유료 좌석을 보유하고 있습니다. 세계에서 가장 널리 배포된 비즈니스 이메일 플랫폼입니다. 그럼에도 커맨드라인에서 자신의 수신함을 읽으려면 놀랍도록 많은 설정이 필요합니다.
Microsoft가 2022년 10월 Exchange Online의 Basic Auth를 중단한 이후 Graph API가 유일하게 지원되는 경로입니다. 단일 GET /me/messages 호출을 하려면 Azure AD에서 앱을 등록하고, Mail.Read 권한을 설정하고, 리프레시 처리가 포함된 MSAL 토큰 획득을 구현하고, Microsoft의 독점 JSON 형식(표준 MIME가 아님)을 파싱해야 합니다. Microsoft의 Graph API 스로틀링 가이드에 따르면 각 메일박스는 10분당 10,000 요청으로 제한되어 429 응답에 대한 재시도 로직도 필요합니다.
EWS(Exchange Web Services)는 아직 존재하지만, Microsoft는 2026년 10월에 Exchange Online용 EWS 중단을 발표했습니다(공지 MC862873). az CLI에는 이메일 명령이 없습니다. PowerShell의 Get-MailboxFolderPermission은 Exchange Online 관리 모듈과 관리자 액세스가 필요합니다. 이들 중 어느 것도 깔끔하고 이식 가능한 워크플로를 제공하지 않습니다.
1. 설치 및 인증
Nylas CLI 설치와 Outlook 계정 연결은 2분 이내입니다. CLI는 API 키로 인증하므로 Azure AD 앱 등록, MSAL 설정, 토큰 리프레시 직접 처리가 필요 없습니다. brew install 명령 하나와 API 키 붙여넣기 한 번으로 이메일 목록 조회까지 도달합니다.
Homebrew는 macOS와 Linux에서 가장 빠른 설치 경로입니다. formula가 최신 릴리스 바이너리를 가져와 SHA-256 체크섬을 자동 검증합니다.
# Homebrew로 설치 (macOS / Linux)
brew install nylas/nylas-cli/nylas다른 설치 방법(셸 스크립트, PowerShell, Go)은 시작하기 가이드를 참조하세요.
설치 후 dashboard-v3.nylas.com에서 애플리케이션을 생성하고 Microsoft 365 또는 Outlook.com 계정을 연결합니다. 대시보드가 OAuth2 동의와 토큰 저장을 처리합니다. 그런 다음 API 키로 CLI를 설정합니다:
nylas auth config
# 프롬프트에서 API 키 붙여넣기
nylas auth whoami
# => Authenticated as you@company.com (Microsoft)2. 이메일 목록, 검색, 읽기
Nylas CLI는 세 가지 이메일 서브커맨드를 제공합니다 — list, search, read — 8개의 서로 다른 Graph API 엔드포인트와 동일한 범위를 커버합니다. 각 명령은 일반적인 메일박스에서 1초 이내에 결과를 반환합니다. list 명령은 기본적으로 최근 메시지를 표시하고, search는 Outlook의 서버 측 검색 인덱스에 매핑되는 키워드, 발신자, 날짜 범위 필터를 받습니다.
아래 예시는 Outlook 이메일의 목록 조회, 필터링, 읽기를 위한 일반적인 패턴입니다. --limit 플래그는 반환 결과 수를 제어하고, --unread는 출력을 미읽은 메시지로 제한합니다.
# 최근 이메일
nylas email list
nylas email list --limit 10
nylas email list --unread
# 키워드, 발신자, 날짜 범위로 검색
nylas email search "quarterly report" --limit 5
nylas email search "from:manager@company.com"
nylas email search "after:2026-01-01 before:2026-02-01"
# 특정 메시지 읽기 (ID는 list 출력에 표시)
nylas email read msg_abc123
nylas email read msg_abc123 --mime3. 스크립팅용 JSON 출력
모든 Nylas CLI 이메일 명령은 기본 테이블 뷰 대신 정규화된 JSON을 출력하는 --json 플래그를 받습니다. 이 JSON 형식은 지원되는 6개 프로바이더 모두에서 일관됩니다 — Gmail, Outlook, Exchange, Yahoo, iCloud, IMAP — 따라서 한 프로바이더용으로 작성된 스크립트는 다른 프로바이더에서도 수정 없이 동작합니다. 출력은 jq, 셸 스크립트, AI 에이전트 도구 사용 플로우로 직접 파이프할 수 있습니다.
아래 예시는 세 가지 일반적인 스크립팅 패턴을 보여줍니다: 미읽은 메시지 카운트, 제목줄 추출, Microsoft Teams 및 SharePoint의 자동 알림 필터링. Microsoft 365 계정은 Teams만으로도 하루 15-30통의 자동 알림 이메일을 수신하여 프로그래밍 방식의 필터링이 수신함 분석에 유용합니다.
# 미읽은 이메일 카운트
nylas email list --unread --json | jq length
# 제목 추출
nylas email list --limit 5 --json | jq '.[].subject'
# Teams/SharePoint 알림 필터링
nylas email list --json \
| jq '[.[] | select(.from[0].email | test("teams|sharepoint"; "i"))]' \
| jq length4. 중요 받은 편지함 vs 기타
Outlook의 중요 받은 편지함은 머신러닝을 사용하여 중요 메시지와 낮은 우선순위 메시지를 분리하며, Microsoft는 활성 사용자의 이메일 분류 시간을 최대 50% 줄인다고 보고합니다. Graph API는 inferenceClassification 속성을 통해 이 분류를 노출하지만, 접근하려면 별도의 $filter 파라미터가 필요하고 표준 폴더에 매핑되지 않습니다. Nylas CLI는 Outlook의 폴더 구조를 직접 노출하므로 중요, 받은 편지함, 보낸 항목, 정크 메일을 포함한 모든 폴더의 메시지를 목록 조회할 수 있습니다.
nylas email folders list 명령은 Outlook이 자동 생성하는 시스템 폴더를 포함하여 메일박스의 모든 폴더를 보여줍니다. nylas email list의 --folder 플래그는 이름으로 단일 폴더에 결과를 필터링합니다.
# 모든 폴더 목록 — 중요 받은 편지함은 폴더 속성으로 표시
nylas email folders list
# 특정 Outlook 폴더의 이메일 목록
nylas email list --folder "Inbox"
nylas email list --folder "Sent Items"
nylas email list --folder "Archive"
nylas email list --folder "Junk Email"
nylas email list --folder "Drafts"5. 공유 메일박스와 위임 액세스
공유 메일박스는 Microsoft 365 조직에서 흔한 패턴입니다 — Microsoft 문서에 따르면 평균적인 엔터프라이즈 테넌트에는 support@나 billing@ 같은 팀 별칭용 공유 메일박스가 5-10개 있습니다. Graph API를 통한 공유 메일박스 접근은 GET /users/{id}/messages와 Mail.Read.Shared 권한 및 테넌트 관리자 동의가 필요합니다. Nylas CLI는 각 공유 메일박스를 별도의 grant로 취급하여 이를 단순화하므로 동일한 명령어로 개인과 공유 메일박스를 전환할 수 있습니다.
Nylas 대시보드에서 공유 메일박스를 별도의 grant로 연결합니다. nylas auth list로 연결된 모든 메일박스를 확인하고 grant ID를 이메일 명령에 전달합니다. 위임 액세스도 동일하게 작동합니다.
# grant 목록으로 연결된 모든 메일박스 확인
nylas auth list
# 공유 메일박스로 작업 (별도 grant로 연결)
nylas email list <shared-mailbox-grant-id>6. Outlook 카테고리와 플래그
Outlook은 메시지당 최대 25개의 색상 코드 카테고리와 후속 조치 플래그를 지원합니다 — Gmail이나 Yahoo Mail에는 없는 기능입니다. Microsoft의 생산성 연구에 따르면 카테고리는 엔터프라이즈 Outlook 배포에서 가장 많이 사용되는 조직 기능 중 하나입니다. Graph API는 각 메시지 객체에서 카테고리를 문자열 배열로 반환하지만, 카테고리별 필터링에는 OData $filter 표현식 구축이 필요합니다. Nylas CLI는 검색 구문을 통해 카테고리 필터링을 노출합니다.
검색 명령은 카테고리 이름을 직접 받습니다. 발신자 및 키워드 쿼리와 카테고리 필터를 결합하거나 JSON 출력을 jq로 파이프하여 커스텀 카테고리 기반 보고서를 만들 수도 있습니다.
# 특정 카테고리의 이메일 검색
nylas email search "category:Red"
# 카테고리와 다른 필터 결합
nylas email search "category:Blue from:cfo@company.com" --limit 10
# 카테고리별 이메일을 JSON으로 보고서용 내보내기
nylas email list --json | jq '[.[] | select(.categories[]? == "Project Alpha")]'7. Microsoft Graph API vs Nylas CLI
Microsoft Graph API는 Outlook 메일박스에서 이메일을 목록 조회하려면 최소 40줄의 코드와 4개의 별도 설정 단계가 필요합니다. Nylas CLI는 이를 애플리케이션 코드 제로의 단일 명령으로 줄입니다. 다음 표는 /me/messages 엔드포인트에 대한 Microsoft Learn 문서의 Graph API 세부 정보와 함께 각 단계를 나란히 비교합니다.
| 단계 | Microsoft Graph API | Nylas CLI |
|---|---|---|
| 앱 등록 | Azure AD 앱 등록 (portal.azure.com) | 불필요 |
| 권한 | Mail.Read 스코프 + 조직 계정용 관리자 동의 | Nylas 대시보드에서 처리 |
| 인증 플로우 | MSAL 라이브러리, 토큰 획득, 리프레시 처리 | nylas auth config |
| 코드 | REST 호출 또는 MS Graph SDK — 최소 40줄 이상 | 코드 불필요 |
| 이메일 목록 | Bearer 토큰이 포함된 GET /me/messages | nylas email list |
| 응답 형식 | Microsoft 독점 JSON (MIME 아님) | 모든 프로바이더에 걸쳐 정규화된 JSON |
| 페이지네이션 | @odata.nextLink 수동 추적 | --limit 플래그 |
| 검색 | $search 또는 $filter OData 파라미터 | nylas email search "query" |
| 속도 제한 | 메일박스당 10,000 요청/10분 — 429 직접 처리 | 백오프로 자동 처리 |
| 공유 메일박스 | Mail.Read.Shared + 관리자 동의 | 별도 grant, 동일 명령 |
8. Microsoft 365 배포 참고사항
Microsoft 365 테넌트에는 외부 도구의 메일박스 연결에 영향을 미칠 수 있는 조직 수준 정책이 있습니다. 이러한 정책은 4억 이상의 모든 유료 좌석에 적용되며 산업별로 크게 다릅니다 — 의료 및 정부 테넌트는 대부분의 상용 배포보다 더 엄격한 조건부 액세스를 적용합니다. 아래 사항은 Microsoft 365에 특화되며 개인 Outlook.com 계정에는 적용되지 않습니다.
- 조건부 액세스 정책 — 조직이 디바이스 규정 준수나 IP 제한을 적용하면 IT 관리자가 Nylas 연결을 허용 목록에 추가해야 할 수 있습니다
- GCC 및 GCC High 테넌트 — 미국 정부 클라우드 테넌트는 별도의 Graph API 엔드포인트를 사용합니다. 연결 전에 관리자에게 확인하세요
- 보존 정책 — Microsoft 365 규정 준수 보존 정책은 CLI 명령이 성공해도 메시지 삭제를 방지할 수 있습니다. 메시지는 동기화 후 다시 나타납니다
- Teams 및 SharePoint 알림 —
nylas email search "from:noreply@email.teams.microsoft.com"로 필터링
다음 단계
- CLI로 Outlook 이메일 보내기 — Outlook 계정에서 메시지 보내기, 예약, 포맷
- 이메일 CLI 도구 비교 — Outlook CLI 워크플로를 터미널 메일 클라이언트 및 SMTP 도구와 비교
- AI 에이전트 CLI (이메일 & 캘린더) — Outlook 메일 및 캘린더 명령을 JSON 도구로 노출
- CLI로 Outlook 캘린더 관리 — 이벤트 생성, 가용성 확인, 회의실 예약
- AI 에이전트용 Outlook MCP 서버 — Microsoft 365 커넥터, Graph API 도구, 로컬 CLI MCP 비교
- 터미널에서 이메일 보내기 — 이메일 보내기, 예약, 추적
- Gmail 이메일 목록 — Google용 동일 워크플로
- Yahoo Mail 이메일 목록 — Yahoo용 동일 워크플로
- iCloud Mail 이메일 목록 — Apple용 동일 워크플로
- IMAP 이메일 목록 — Fastmail, Zoho 등 지원
- Exchange 이메일 목록 — Exchange용 동일 워크플로
- MCP로 AI 에이전트에 이메일 액세스 부여 — Claude, Cursor, VS Code를 수신함에 연결
- 터미널에서 공유 메일박스 관리 — grant 전환으로 개인과 팀 수신함 전환
- 전체 명령어 레퍼런스 — 모든 플래그와 서브커맨드 문서
- Microsoft Graph: 메시지 목록 — Outlook / Microsoft 365 메일 목록의 표준 엔드포인트
- Microsoft Graph: OData 쿼리 파라미터 — CLI 플래그 뒤의 $filter, $search, $select 의미론