월요일 9시 30분. 받은 편지함이 가득 찼다. 대부분은 답장이 필요 없다 — 뉴스레터, 알림, 서비스 업데이트, 이번 주 내내 대화 중인 클라이언트가 또 보낸 메일들. 꼼꼼히 읽을 필요도 없고, 답장할 필요도 없다 — 그저 알맞은 폴더로 들어가기만 하면 된다. 그래야 받은 편지함이 잡동사니 서랍이 되지 않는다.
가장 깔끔한 상태는 빈 받은 편지함이다. 도착한 모든 메일이 분류되어, 각자 있어야 할 자리에 놓여 있는 상태. 클라이언트와 주고받은 대화를 찾고 싶을 때 — 그 클라이언트 폴더에 있다. 작년 청구서를 보고 싶을 때 — "Invoices"에 있다. 안 읽은 메일 더미도 없고, 끝없이 스크롤할 일도 없다.
대부분의 메일은 열어볼 필요조차 없다 — 보낸 사람과 제목만 봐도 어디로 가야 할지 알 수 있다. 하지만 메일 하나하나를 마우스로 끌어다 알맞은 폴더에 넣어야 한다. 한 통에 몇 초, 그게 수십 통 — 매일같이.
Apple Mail은 메일을 보여 주는 데에는 훌륭하다. 한 가지가 약하다 — 빠르게 처리하는 것이다. "이 보낸 사람의 모든 메일을 여기로 옮기기" 같은 단축키는 없다. "이 스레드 전체를 한 번에 삭제하기"도 없다. 폴더 트리 사이를 끌어다 놓는 것이 당신의 최고 속도다.
Sortail이 하는 일
Sortail은 Apple Mail 옆에 자리하는 플로팅 패널이다. Mail이 활성화되면 나타나고, 다른 앱으로 전환하면 숨는다. Mail을 대체하지도 않고, 자체 클라이언트를 띄우지도 않는다 — 그저 빠른 접근을 위한 리모컨일 뿐이다.
세 가지 동작 — Move, Delete, Archive — 각각 세 가지 단위에서 작동한다. 메일 한 통, 스레드 전체, 또는 같은 보낸 사람의 모든 메일을 한 번에.
전형적인 시나리오: 한 클라이언트가 이번 주에 15통의 메일을 보냈다 — 업무 논의, 첨부 파일, 합의 사항. 예전에는: shift-클릭으로 선택, 클라이언트 폴더로 끌기, 빠뜨린 게 없기를 바라기. 지금은: "Move Sender"를 한 번 누르면 15통이 한 번에 알맞은 폴더로 들어간다. 이미 모든 게 정리된 긴 스레드는 — "Delete Thread"로 위에서 아래까지 깔끔히 사라진다.
메일을 폴더로 옮기면 Sortail은 기억한다: 이 보낸 사람 → 그 폴더. 같은 보낸 사람의 다음 메일에서는 콤보 박스에 이미 그 폴더가 미리 채워져 있다 — Move를 누르면 메일은 있어야 할 자리에 있게 된다. 추측할 일도, 마우스로 폴더 트리를 뒤질 일도 없다.
Mark as Read on move는 선택형 토글이며, 이걸 켜 두면 받은 편지함이 읽은 항목을 자동으로 정리한다.
이건 AI도, 분류기도 아니다. Sortail은 당신의 메일을 읽고 어떻게 할지 정하려 하지 않는다. 당신이 이미 스스로 내리고 있는 판단을 더 빠르게 해 줄 뿐이다.
모든 계정, 한 곳에서
Mail.app에서는 모든 것이 분리되어 있다. 업무용 Gmail, 가족용 iCloud, 뉴스레터용 IMAP 계정, 거기에 하나 더 — 어쩌다 못 버리고 있는 오래된 대학교 메일함. 각 계정마다 자체 폴더 구조가 있고, 그 구조들은 서로 교차하지 않는다. "Travel"에 무언가를 정리하려 할 때, 네 계정 중 어느 곳에 그 폴더가 있는지 떠올려 보라.
Sortail은 모든 계정을 동시에 가로질러 작동한다. 폴더 콤보는 그것들을 나란히 보여 준다 — [work] Travel, [icloud] Travel, [old-imap] Travel — 당신은 알맞은 것을 고른다. "Move Sender"를 실행하면 Sortail이 모든 계정을 돌며 그 보낸 사람의 메일을 어디에 있든 찾아내, 당신이 고른 폴더로 옮긴다 — 그 보낸 사람이 당신의 Gmail과 iCloud 양쪽에 메일을 보냈더라도.
Gmail 계정의 경우 Sortail은 추가로 Gmail API를 통해 Google과 직접 통신한다. 이는 "Archive"가 Gmail이 의도한 방식대로 동작한다는 뜻이다 — INBOX 라벨을 떼고 메시지는 All Mail에 남긴다 — 흔한 IMAP 클라이언트처럼 로컬 "Archive" 폴더에 사본을 떨궈 두는 식이 아니다.
플러그인이 아니라 독립 앱
프로젝트 초기에 내린 가장 큰 아키텍처 결정: Sortail은 Mail의 플러그인이 아니다. 확장도, Mail Extension도, Mail 안에서 로드되는 번들도 아니다.
역사적으로 Mail 플러그인은 죽어 왔다. Apple은 Mail 프로세스를 소유하고 있고, 때때로 그 내부를 바꾸거나 API를 닫는다. 많은 사람들이 아직도 "MailHub 대안"을 검색하는 그 MailHub는 플러그인이었다. 어느 macOS 업데이트 이후 모든 사용자에게서 한꺼번에 동작을 멈췄다.
Sortail은 다르게 만들어졌다. 공개된 인터페이스를 통해 Mail과 대화하는 별도의 애플리케이션이다. 명령에는 AppleScript, 메타데이터에는 Mail의 로컬 데이터베이스(Envelope Index), Gmail 계정에는 Gmail API. 이 인터페이스들은 수십 년 동안 안정적으로 유지되어 왔다. Apple은 이들 위에 만든 서드파티 통합을 공식적으로 지원하며, macOS 릴리스 사이에 이를 깨뜨리지 않는다.
이것이 실제로 의미하는 바: Apple이 다음 macOS를 내놓아도 Sortail은 계속 동작한다. 긴급 패치도, "호환성을 고칠 며칠만 주세요"도 없다.
누구를 위한 앱인가
Sortail은 자기 메일을 직접 정리하는 사람들, 그리고 그것을 더 빠르게 하고 싶은 사람들을 위한 앱이다.
완전 자동화된 받은 편지함이나 새로운 메일 클라이언트를 원하는 사람들을 위한 것은 아니다. 그리고 Apple Mail 전용이다 — Spark, Mimestream, Airmail은 지원하지 않는다.