컴퓨터의 받은편지함은 깔끔한데 휴대폰에서는 엉망입니다. 같은 메일함과 계정인데 결과가 다른 이유는 정리를 담당하는 이메일 필터가 컴퓨터의 메일 프로그램에 설정되어 있고, 휴대폰에는 그 규칙이 없기 때문입니다.
로컬 규칙은 프로그램이 실행 중일 때만 작동합니다. 금요일에 노트북을 닫으면 월요일까지 분류가 멈출 수 있습니다. 이후 사흘치 메시지가 한꺼번에 정리되고, 그저께 휴대폰에서 읽은 메일의 알림이 다시 나타나기도 합니다.
서버 필터는 메일이 전달될 때 실행되어 선택한 폴더에 메시지를 저장합니다. 나중에 연결한 기기에서는 이미 정리된 메일함을 볼 수 있습니다. 여기에 쓰이는 Sieve는 이 작업에 적합한 검증된 언어입니다. 다만 알림과 폴더 표시는 여전히 메일 프로그램 설정에 따라 달라집니다.
이메일 필터의 실행 위치가 결과를 좌우합니다
| 로컬 규칙 | 서버 필터 | |
|---|---|---|
| 실행 시점 | 프로그램을 열고 동기화할 때 | 메일이 전달될 때 |
| 결과가 보이는 범위 | 규칙은 한 기기에서 실행되고 IMAP 변경 사항은 나중에 동기화됨 | 연결된 기기에서 동기화 후 확인 가능 |
| 알림에 미치는 영향 | 휴대폰이 먼저 알린 뒤 메시지가 받은편지함에서 이동할 수 있음 | 동기화 전에 분류됨. 알림은 프로그램 설정에 따라 달라짐 |
| 프로그램 재설치 후 | 프로그램 프로필을 백업하지 않았다면 규칙이 사라질 수 있음 | 서버의 메일함 설정을 보존하는 동안 유지됨 |
| 잠자는 동안 | 컴퓨터와 프로그램이 실행 중이어야 함 | 서버가 메일을 전달하는 동안 사용자 기기에 의존하지 않음 |
알림 차이는 일상에서 쉽게 느낄 수 있습니다. 뉴스레터가 도착해 휴대폰이 진동하고, 사십 분 뒤 컴퓨터의 프로그램이 메일을 나중에 읽기로 옮깁니다. 규칙은 작동했지만 피하려던 방해는 이미 일어났습니다. 서버 필터는 휴대폰과 동기화하기 전에 메시지를 해당 폴더에 넣습니다. 그 폴더의 알림은 따로 설정하세요.
Sieve 간단히 알아보기
Sieve는 메일 전달 시 메시지를 어떻게 처리할지 결정하는 언어입니다. 기본 언어는 RFC 5228에 정의되어 있으며 의도적으로 튜링 완전하지 않게 설계되었습니다. 반복문이나 임의의 프로그램을 실행하는 기능이 없습니다. 이런 제약은 안전한 필터링에 도움이 됩니다. 사용 가능한 확장과 기능은 서버에 따라 다르므로 기본 언어의 한계를 모든 확장에 그대로 적용해서는 안 됩니다.
스크립트는 다음과 같습니다.
if header :contains "from" "billing@vendor.com" {
fileinto "Finance/Invoices";
stop;
}
직접 작성할 필요는 없습니다. 시각적 편집기가 내부에서 Sieve를 생성하고 각 필터를 메일 전달 스크립트에 포함합니다. 이 구조를 이해하면 명시적인 중단으로 처리가 끝나는 이유, 전달에 SMTP를 쓰는 이유, 서버 분류 결과가 동기화 후 여러 기기에 표시되는 이유를 알 수 있습니다. 폴더에 저장하는 것만으로 다음 규칙이 자동 중단되지는 않습니다.
필터에는 대상 폴더가 필요합니다
필터가 메시지를 저장할 곳은 필요합니다. 하지만 서른 개의 폴더를 한 줄로 나열하면 혼란의 형태만 달라질 수 있습니다.
서버와 메일 프로그램이 허용하는 범위에서 폴더를 중첩할 수 있습니다. 폴더 트리는 IMAP 구조에서 만들어지므로 웹메일, Outlook, Apple Mail, 휴대폰에서 같은 계층을 사용할 수 있습니다. 한 프로그램에서 만든 하위 폴더는 동기화 후 다른 프로그램에도 나타나지만 폴더 구독이 필요할 수 있습니다.
Clients
Acme
Invoices
Contracts
Globex
Invoices
Finance
Receipts
Tax
다음 세 가지 기능이 폴더 트리를 편리하게 만듭니다.
개인별로 저장되는 펼침과 접힘 상태. 웹메일에서는 공유 메일함의 폴더 트리 상태와 색상을 구성원별로 저장합니다. 설정이 폴더가 아닌 구성원에게 속하므로 두 사람이 각자 사이드바를 정리해도 서로 영향을 주지 않습니다.
색상. 자주 쓰는 네다섯 개의 폴더를 눈에 띄게 표시하면 목록을 매번 읽지 않고 찾을 수 있습니다.
계층을 고려한 검색. 가장 중요한 기능입니다. Clients 폴더만 검색하거나, 하위 폴더까지 포함하거나, 메일함 전체를 검색할 수 있습니다. 두 번째 범위가 없다면 맨 아래 폴더를 하나씩 검색해야 합니다. 범위 사용법은 여러 메일함을 한 번에 검색하는 방법을 참고하세요.
시각적 편집기로 이메일 필터 만들기
필터는 조건과 작업으로 구성됩니다.
조건은 보낸 사람, 받는 사람, 제목, 본문, 크기 또는 특정 헤더를 확인합니다. 비교 방식에는 ‘포함’, ‘정확히 일치’, ‘시작 문자열’, ‘끝 문자열’ 등이 있습니다. 여러 조건을 모두 만족해야 하는지, 하나만 만족해도 되는지 선택할 수 있습니다.
작업은 폴더 저장, 다른 주소로 전달, 읽음 또는 중요 표시, 알림 없는 폐기, 보낸 사람에게 응답하는 거부 등을 지정합니다.
특히 주의해야 할 작업은 두 가지입니다.
폐기는 알림을 보내지 않고 휴지통에 복사본도 남기지 않습니다. 서버는 메일을 수락하지만 메일함에 저장하지 않습니다. 기술 로그에 처리 기록이 남을 수 있어도 복구 가능한 메일 사본은 아닙니다. 조건이 너무 넓으면 필요한 메일이 모르는 사이 사라질 수 있습니다. 자주 열지 않는 폴더에 저장하는 편이 낫습니다.
거부는 SMTP 봉투 발신자에게 실패 알림을 보낼 수 있습니다. 이 주소는 실제 메일 작성자의 주소와 다를 수 있습니다. 주소가 위조되었다면 무관한 사람에게 알림이 가면서 원치 않는 반송 알림인 백스캐터가 발생할 수 있습니다. 동작은 구현과 거부 시점에 따라 달라집니다. 의심스러운 메일은 대개 스팸 폴더에 저장하는 편이 안전합니다.
필터 전달은 SMTP를 사용하므로 대상 서버에서 인증에 실패할 수 있습니다. SRS는 봉투 주소를 다시 작성해 SPF 문제를 줄이지만 해당 경로에 적용되는지 확인해야 합니다. DMARC 통과나 Gmail 받은편지함 전달을 보장하지는 않습니다. 스팸으로 분류된 이유는 헤더와 인증 결과를 확인해 판단하세요.
이메일 필터는 순서대로 실행됩니다
규칙은 위에서 아래로 평가됩니다. 따라서 필터 조합이 예상과 다른 결과를 낼 수 있습니다.
다음 두 규칙을 생각해 보세요.
@acme.com에서 온 메일 → Clients/Acme에 저장- 제목에 invoice 포함 → Finance/Invoices에 저장
Acme의 청구서는 먼저 규칙 1과 일치해 Clients/Acme에 들어갑니다. 첫 규칙에서 처리 중단을 활성화했다면 규칙 2는 실행되지 않습니다. 원인은 중단 설정이지 폴더 저장 자체가 아닙니다. 경고가 표시되지 않을 수도 있어 재무 폴더에서 Acme 청구서를 찾지 못하게 됩니다.
원칙은 구체적인 규칙을 먼저, 일반적인 규칙을 나중에 두는 것입니다. 특정 거래처의 청구서 규칙은 그 거래처의 모든 메일 규칙보다 위에 놓으세요. 필터가 작동하지 않으면 먼저 위쪽 규칙과 중단 설정을 확인하세요. 규칙을 끌어서 순서를 바꾸는 것만으로 해결되기도 합니다.
Sieve를 직접 작성할 때
시각적 편집기는 많은 일상 작업을 처리합니다. 표현할 수 없는 조건에는 Agency 요금제의 Sieve 소스 편집기를 사용할 수 있습니다.
이 조건과 저 조건을 만족하지만 다른 조건은 만족하지 않는 중첩 논리, 정규 표현식, 추가 헤더, 자동 회신과 분류 및 전달을 결합한 스크립트에 적합합니다. 서버가 필요한 확장을 지원해야 합니다. 텍스트 스크립트는 버전 관리와 여러 메일함에서의 템플릿 재사용에도 편리합니다.
require ["fileinto", "regex", "imap4flags"];
if allof (
header :regex "subject" "^\\[TICKET-[0-9]+\\]",
not header :contains "from" "noreply@"
) {
setflag "\\Flagged";
fileinto "Support/Active";
stop;
}
주의할 점은 소스 스크립트와 시각적 규칙이 같은 메일함의 필터링을 제어한다는 것입니다. 직접 수정한 내용이 시각적 규칙으로 다시 변환되거나 다음 스크립트 생성 때 유지된다고 가정하지 마세요. 메일함마다 주로 사용할 관리 방법을 정하세요. 자세한 내용은 Sieve 소스 편집기를 참고하세요.
유용한 설정 방법
보낸 사람이 아닌 별칭으로 분류하세요. 서비스마다 다른 이메일 별칭을 사용해 newsletters@, receipts@, shopping@ 등으로 나누면 받는 사람 규칙 하나가 여러 발신자 규칙을 대체할 수 있습니다. 서비스가 발송 도메인을 바꿔도 유용합니다. 다만 수신자 헤더에 실제로 표시되는 주소를 확인하세요. 숨은 참조나 주소 재작성에는 다른 조건이 필요할 수 있습니다.
삭제하지 말고 폴더에 저장하세요. 알림, 경고, 영수증을 자동 메일 폴더에 모으면 받은편지함은 개인 간 대화에 쓰면서 나중에 검색할 수 있습니다. 전달 시 폐기는 복구용 사본을 남기지 않습니다. 폴더 저장은 다른 이유로 삭제되지 않는 한 메시지를 보존합니다.
긴급한 메일은 옮기지 말고 표시하세요. 받은편지함 밖으로 나가면 놓치기 쉽습니다. 중요 표시를 하고 눈에 보이는 곳에 두세요.
일반 규칙 하나를 맨 아래에 두세요. 앞에서 처리되지 않은 메일을 검토 폴더에 저장하는 임시 규칙으로 설정의 빈틈을 찾을 수 있습니다. 앞선 규칙의 중단 설정을 고려하고 구성이 안정되면 검토 규칙을 삭제하세요.
폴더 계층부터 미리 만들지 마세요. 아직 받지 않은 메일을 위해 세 단계 폴더를 만들면 실제 사용과 맞지 않을 수 있습니다. 비슷한 메일이 쌓일 때 폴더를 만드세요.
이메일 필터 제한
| 원문 버전의 요금제 | 원문 버전의 메일함별 필터 수 | 원문 버전의 필터 전달 수 | Sieve 소스 편집기 | 자동 회신 |
|---|---|---|---|---|
| Nano | 3 | 사용 불가 | 불가 | 불가 |
| Starter | 3 | 사용 불가 | 불가 | 가능 |
| Pro | 10 | 5 | 불가 | 가능 |
| Agency | 50 | 25 | 가능 | 가능 |
이 표는 원문 버전의 수치를 보존하며 현재 한도를 보장하지 않습니다. 현행 설정에서는 Nano와 Starter의 일반 사용자 규칙이 활성화되어 있지 않지만 Starter에는 별도 전달 한도가 있습니다. 계정의 현재 기능을 확인하세요. 전달은 사용자를 대신해 메일을 보내므로 저장 용량뿐 아니라 발송 정책에도 관련되어 별도로 제한됩니다.
자주 묻는 질문
서버 필터는 Outlook과 Apple Mail에서도 작동하나요?
네. 전달 시 처리되어 메일 프로그램은 동기화 후 정리된 메일함을 봅니다. 프로그램에 같은 규칙을 다시 만들 필요는 없지만 폴더 구독과 알림은 별도로 설정해야 합니다.
Sieve를 배워야 하나요?
아니요. 시각적 편집기가 스크립트를 생성합니다. 더 복잡한 작업에는 Agency의 소스 편집기를 사용할 수 있습니다.
필터가 작동하지 않는 이유는 무엇인가요?
앞선 규칙이 일치해 처리를 중단하는 경우가 흔합니다. 순서와 중단 설정을 먼저 확인하고 조건, 규칙 활성화 여부, 현재 활성 스크립트 상태를 점검하세요.
이미 받은 메일에도 필터를 실행할 수 있나요?
이 필터는 전달 시 실행되며 새 메일을 대상으로 합니다. 저장된 메일은 검색과 일괄 작업으로 정리하세요. Sieve가 별도의 재처리 도구를 배제하는 것은 아니지만 그것은 다른 기능입니다.
필터 전달과 메일함 전달은 어떻게 다른가요?
메일함 전달은 해당 설정이 적용되는 모든 새 수신 메일의 사본을 보냅니다. 필터는 조건에 맞는 메시지를 선택합니다. 또한 전달 작업에는 사본을 남기는 것과 남기지 않는 것이 있습니다. 선택한 작업과 다른 규칙의 상호작용을 확인하세요.
폴더 색상은 팀과 공유되나요?
아니요. 웹메일의 색상과 트리 상태는 공유 메일함 구성원별로 저장됩니다. 다른 메일 프로그램도 같은 색상을 표시한다는 뜻은 아닙니다.
폴더는 몇 단계까지 중첩할 수 있나요?
서버와 메일 프로그램의 제한 안에서 계층을 만들 수 있습니다. 세 단계를 넘으면 탐색보다 검색이 편리한 경우가 많습니다. 트리는 IMAP을 기반으로 하지만 표시와 구독은 프로그램에 따라 달라집니다.
필터로 스팸을 폐기해야 하나요?
피하는 편이 안전합니다. 폐기는 휴지통에 메시지를 저장하지 않으므로 조건이 너무 넓으면 필요한 메일이 알림 없이 사라질 수 있습니다. 스팸 폴더를 사용하고 스팸 신고로 분류기에 정보를 보내세요. 일반적인 폴더 이동은 같은 작업이 아닙니다. 차이는 차단된 발신자를 참고하세요.