기술 · 출처 기반 답변
IMAP(Internet Message Access Protocol)이란? 개념 설명
IMAP(Internet Message Access Protocol)은 클라이언트가 원격 서버에 저장된 메시지에 접근하고 관리할 수 있게 하는 표준 이메일 수신 프로토콜입니다. POP3와 달리 IMAP은 연결된 모든 기기에서 메일함의 상태를 동기화하므로, 읽음, 삭제, 이동 플래그가 어디서나 일관되게 유지됩니다.
IMAP의 동작 방식
IMAP은 이메일 클라이언트와 서버 사이에 지속적인 연결을 유지합니다. 사용자가 폴더를 열면 클라이언트는 메일함 전체를 다운로드하는 대신 메시지 헤더 목록을 요청합니다. 실제 메시지 본문은 사용자가 특정 이메일을 선택할 때만 가져옵니다. 이 구조 덕분에 폴더와 메시지 플래그를 서버 측에서 관리할 수 있으며, 모바일 기기에서 변경한 내용이 데스크톱 클라이언트에 즉시 반영됩니다.
발신자 관점에서 본 IMAP과 POP3
최신 발신자와 개발자에게는 여러 기기에서 접근하기 위해 IMAP이 권장됩니다. POP3는 보통 이메일을 로컬 컴퓨터 한 대에 다운로드하고 서버에서 삭제하지만, IMAP은 원본을 서버에 유지합니다. 이는 여러 플랫폼에서 통합된 커뮤니케이션 뷰가 필요한 사용자에게 매우 중요합니다. 수신자에게 매끄러운 사용자 경험을 제공하려면 발신자는 서버가 IMAP을 지원하도록 해야 합니다.
운영 참고 사항과 보안
IMAP은 보통 암호화되지 않은 트래픽에는 143번 포트를, SSL TLS를 통한 암호화 연결에는 993번 포트를 사용합니다. 143번 포트에서 평문을 사용하면 자격 증명과 이메일 내용이 평문으로 전송되어 보안 위험이 됩니다. 최신 구현은 데이터 무결성을 보호하기 위해 993번 포트에서 암시적 TLS를 엄격하게 적용합니다. 이메일 도구를 연동하는 개발자는 SendHQ 무료 도구로 전반적인 메일 상태를 뒷받침하는 다른 DNS 설정을 확인할 수 있습니다.
흔한 구성 실수
흔한 오류는 IMAP 포트를 잘못 구성하거나 클라이언트 설정에서 SSL TLS를 활성화하지 않아 연결 타임아웃이 발생하는 것입니다. 또 다른 흔한 문제는 IMAP IDLE 명령 실패로, 새 메일의 실시간 푸시 알림이 작동하지 않습니다. 관리자는 사용량이 많은 시간대에 세션이 끊어지지 않도록 서버가 예상되는 동시 IMAP 연결 수를 처리하도록 구성되어 있는지 확인해야 합니다.
구체적인 구현 예시
일반적인 IMAP 워크플로에서는 클라이언트가 자격 증명과 함께 LOGIN 명령을 보내고, 이어서 SELECT 명령으로 INBOX 폴더를 엽니다. 서버는 메시지 시퀀스 번호 목록을 반환합니다. 그다음 클라이언트는 요청한 메시지 ID를 기준으로 FETCH 명령을 사용해 제목 줄이나 본문 같은 메시지의 특정 부분을 가져옵니다.
팀에서 자주 묻는 질문
IMAP과 SMTP의 차이는 무엇인가요?
SMTP는 클라이언트에서 서버로, 또는 서버 사이에서 이메일을 보내는 데 사용합니다. IMAP은 서버에서 클라이언트로 이메일을 가져오고 관리하는 데만 사용합니다.
보안을 위해 어떤 IMAP 포트를 사용해야 하나요?
전송 중에 로그인 자격 증명과 이메일 데이터가 암호화되도록 암시적 TLS 암호화를 지원하는 993번 포트를 사용하세요.
IMAP은 모든 이메일을 로컬 기기에 다운로드하나요?
아니요. IMAP은 먼저 헤더를 가져오고 사용자가 이메일을 명시적으로 열 때만 전체 메시지 내용을 다운로드하므로 로컬 저장 공간과 대역폭을 절약합니다.
여러 기기에서 동시에 IMAP을 사용할 수 있나요?
네. IMAP은 여러 기기 간 동기화를 위해 설계되어, 여러 클라이언트가 같은 서버 메일함에 접근하면서 폴더 상태를 동기화할 수 있습니다.
1차 출처
- RFC 3501: 인터넷 메시지 액세스 프로토콜 버전 4rev1 — RFC Editor
- 서비스 이름 및 전송 프로토콜 포트 번호 레지스트리 — IANA
- RFC 8314: SMTP 이후 이메일 프로토콜의 평문 관련 고려 사항 — RFC Editor