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 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으로 연결하려면 네 가지를 모두 알아야 합니다. 하나라도 틀리면 30초간 연결 타임아웃을 바라보다 알 수 없는 오류를 보게 됩니다.

단일 제공업체를 위한 일반적인 .muttrc 설정은 다음과 같습니다:

# Fastmail용 .muttrc — 계정 하나에 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 설정을 가진 세 개의 별도 설정 블록이 되고, 비밀번호가 바뀌면 연결이 조용히 끊어집니다.

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 계정 연결

Nylas CLI에 IMAP 계정을 연결하려면 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에 연결됩니다. 2023년 Consumer Reports 데이터에 따르면, 약 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 서버를 운영하며, 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분)

Nylas CLI는 대시보드 설정 시 서버 정보를 제공하면 연결 수준의 세부사항(TLS 협상, IDLE 킵얼라이브, 타임아웃 후 재연결)을 처리합니다.

TLS, 포트, 그리고 STARTTLS 혼란

IMAP은 두 개의 포트 번호를 사용합니다 — Implicit TLS용 993과 STARTTLS 또는 평문용 143 — 잘못된 것을 선택하면 조용한 연결 실패가 발생합니다. 2018년에 발표된 RFC 8314는 모든 신규 배포에서 포트 993의 Implicit TLS를 기본값으로 권장합니다. 그럼에도 2022년 IETF 조사에 따르면 활성 IMAP 서버의 35% 이상이 여전히 포트 143에서 STARTTLS 연결을 허용합니다.

포트방식작동 원리상태
993Implicit TLSTLS 핸드셰이크가 먼저 수행된 후 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 계정 통합

Nylas CLI는 --grant 플래그를 사용하여 여러 IMAP 계정을 단일 커맨드라인 인터페이스로 통합할 수 있습니다. Fastmail, 자체 호스팅 Dovecot, ISP 주소 등 연결된 각 IMAP 계정은 하나의 플래그로 전환할 수 있는 별도의 그랜트가 됩니다. mutt 같은 기존 IMAP 클라이언트는 계정당 별도 설정 블록이 필요하므로, 3-4개 계정에 3-4개의 자격 증명 파일을 유지해야 합니다.

다음 예시는 세 개의 별도 IMAP 계정을 조회하고 하나의 셸 루프에서 모든 계정의 읽지 않은 메시지 수를 집계하는 방법을 보여줍니다.

# --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"

# 하나의 스크립트로 모든 계정의 읽지 않은 메시지 수 집계
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-expression 유사 구조의 텍스트 기반 형식을 사용합니다 — 커스텀 파서 없이는 jq로 파이프할 수 없습니다. --json 플래그는 각 메시지를 subject, from, date, body 같은 필드를 가진 JSON 객체로 출력하여 스크립팅이나 AI 에이전트 사용에 바로 활용할 수 있습니다.

세 가지 일반적인 자동화 패턴이 JSON 출력의 가치를 보여줍니다: 일일 받은 편지함 다이제스트, 전체 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 대시보드는 대부분의 제공업체 설정을 자동 감지하지만, 자동 감지가 실패할 경우 수동으로 입력할 수 있습니다. 나열된 모든 제공업체는 포트 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 및 기타 이메일 제공업체의 관련 워크플로를 다룹니다.