고급 메일 필터링을 위한 원시 Sieve 편집기

Sieve 코드로 고급 필터링과 전달, 표시, 자동 회신을 서버에서 직접 제어합니다.

문서 정보

유형, 난이도, 요금제, 최종 업데이트 정보입니다.

유형
참조 자료
난이도
고급
요금제
Agency
최종 업데이트
2026년 9월 9일

대부분의 사용자는 이 기능이 필요 없습니다. TrekMail의 시각적 필터 도구가 거의 모든 요구를 더 쉽게 처리합니다. 하지만 개발자, 여러 사서함을 관리하는 IT 관리자, 도구의 한계를 넘은 고급 사용자는 원시 Sieve로 수신 메일을 완전히 제어할 수 있습니다.

원시 스크립트 활성화에는 Agency가 필요합니다. 다른 요금제는 초안을 저장할 수 있지만 실행하지 않습니다.

Sieve란?

새 메일이 올 때 실행되는 작은 필터 언어입니다. 발신자, 제목, 크기, 헤더를 확인하고 이동, 전달, 표시, 거부 또는 자동 회신을 수행합니다.

Outlook이나 Apple Mail 규칙과 달리 서버에서 24시간 작동합니다. 컴퓨터나 앱이 꺼져도 모든 기기에서 같은 결과를 봅니다.

평소에는 배울 필요가 없습니다. 시각적 도구가 뒤에서 Sieve를 작성하며, 표현할 수 없는 로직만 직접 작성하면 됩니다.

원시 Sieve와 시각적 필터의 선택

시각적 필터를 사용할 때:

  • "보낸 사람에 X 포함", "제목에 Y 포함" 같은 단순 조건.
  • 이동, 전달, 표시, 거부, 삭제.
  • 코드를 쓰고 싶지 않을 때.
  • 구문 걱정 없이 빠르게 바꿀 때.

원시 편집기를 사용할 때:

  • "이것과 저것은 맞지만 다른 것은 아님" 같은 복잡한 로직.
  • 특정 주문 번호 형식을 정규식으로 찾을 때.
  • 휴가 회신, 필터링, 전달을 한 스크립트에 합칠 때.
  • 시각적 조건과 작업으로 표현할 수 없을 때.
  • 여러 사서함에 템플릿을 복사할 때.

여는 위치

  1. TrekMail 대시보드의 사서함으로 이동합니다.
  2. 대상 옆에서 관리를 선택합니다.
  3. Sieve 탭을 엽니다.
  4. Agency에서는 관리형 필터가 생성한 현재 코드가 먼저 보입니다. 수정하거나 새로 작성합니다.
  5. 저장 및 활성화를 클릭합니다.

현재 코드가 없으면 빈 편집기가 열립니다. 작성하거나 붙여 넣고 저장 및 활성화를 누릅니다.

지원 확장 기능

확장 기능 역할
fileinto 지정 폴더로 이동합니다. 없으면 받은 편지함에 두거나 삭제만 할 수 있습니다.
reject 사용자 지정 오류와 함께 반송해 배달 실패를 알립니다.
vacation 부재중 회신을 보내고 발신자별 빈도를 제한합니다.
copy 사본을 남기며 전달합니다. 없으면 원래 사서함에서 사라집니다.
body 헤더뿐 아니라 본문도 비교합니다.
imap4flags 읽음, 표시, 중요 같은 상태를 지정합니다.
variables 일치한 일부를 저장해 다시 사용합니다.
relational 크기와 숫자 헤더의 대소 비교를 추가합니다.
regex 단순 포함보다 강력한 정규식을 지원합니다.

맨 위의 require에 선언합니다. 서버는 활성화 전에 검사하고 미지원 또는 보안상 민감한 확장을 거부합니다.

예시 스크립트

예시 1: 복잡한 조건부 전달

특정 고객이 보내고 제목에 "proposal"이 있으며 5 MB 미만인 메일을 전달, 보관, 표시합니다.

require ["fileinto", "copy", "imap4flags", "relational", "comparator-i;ascii-numeric"];

# Forward proposal emails from client, but only if they are under 5MB
if allof (
    address :contains "from" "@bigclient.com",
    header :contains "subject" "proposal",
    size :under 5M
) {
    # Send a copy to the project manager
    redirect :copy "pm@youragency.com";

    # Flag it for follow-up
    addflag "\\Flagged";

    # File it in the client folder
    fileinto "Clients/BigClient/Proposals";

    # Stop processing further rules
    stop;
}

# Everything else from this client goes to their general folder
if address :contains "from" "@bigclient.com" {
    fileinto "Clients/BigClient";
    stop;
}

작동 방식: 첫 규칙은 조건에 맞는 제안만 처리하고, 둘째 규칙은 나머지 고객 메일을 일반 폴더에 보관합니다.

예시 2: 주문 번호 정규식

ORD-12345나 ORD-98765 형식을 자동 보관합니다.

require ["fileinto", "regex"];

# Match order confirmation emails with order numbers like ORD-#####
if header :regex "subject" "ORD-[0-9]{4,6}" {
    fileinto "Orders";
    stop;
}

# Match support ticket numbers like TICKET-####
if header :regex "subject" "TICKET-[0-9]{3,}" {
    fileinto "Support Tickets";
    stop;
}

작동 방식: [0-9]{4,6}은 숫자 4개에서 6개를 뜻하며 ORD-1234, ORD-12345, ORD-123456을 찾습니다.

예시 3: 휴가, 보관, 전달 결합

부재중 회신, 긴급 메일 전달, 범주별 보관을 한 번에 처리합니다.

require ["fileinto", "vacation", "copy", "imap4flags"];

# Auto-reply to everyone (once per 3 days per sender)
vacation :days 3 :subject "Out of office until April 15"
    "Thanks for your email. I am out of the office until April 15
with limited access to email. For urgent matters, please contact
Sarah at sarah@youragency.com. I will reply when I return.";

# Forward urgent emails to Sarah immediately
if header :contains "subject" "urgent" {
    redirect :copy "sarah@youragency.com";
    addflag "\\Flagged";
}

# File invoices
if header :contains "subject" "invoice" {
    fileinto "Invoices";
    stop;
}

# File newsletters
if address :contains "from" "newsletter" {
    fileinto "Newsletters";
    stop;
}

작동 방식: vacation은 발신자마다 3일에 최대 한 번 회신합니다. stop이 없어 아래 필터도 계속 실행됩니다.

예시 4: 사용자 지정 헤더로 표시

X-Priority를 읽어 우선순위가 높은 메시지를 표시합니다.

require ["imap4flags", "fileinto", "relational", "comparator-i;ascii-numeric"];

# X-Priority: 1 = highest, 5 = lowest
# Flag messages marked as high priority by the sending server
if header :value "le" :comparator "i;ascii-numeric"
    "X-Priority" "2" {
    addflag "\\Flagged";
}

# File low-priority messages (4 or 5) into a "Low Priority" folder
if header :value "ge" :comparator "i;ascii-numeric"
    "X-Priority" "4" {
    fileinto "Low Priority";
    stop;
}

작동 방식: 1은 최고, 5는 최저입니다. :value "le"는 이하를 뜻해 1과 2를 표시하고, 4와 5는 받은 편지함 밖으로 옮깁니다.

중요 사항

원시 스크립트는 시각적 필터를 대체합니다. 기존 필터는 저장되지만 비활성화됩니다. Sieve 탭의 기본값으로 재설정으로 돌아갑니다.

활성화 전에 검증합니다. 구문 오류가 있으면 새 코드를 거부하며 이전 코드나 필터가 계속 작동합니다.

require는 필수입니다. 사용하는 모든 확장을 require에 넣어야 합니다. fileintovacation을 빠뜨리면 거부됩니다.

스팸을 먼저 거릅니다. TrekMail이 서버에서 스팸을 처리한 뒤 Sieve가 실행되므로 스팸 규칙은 필요 없습니다.

시각적 필터로 돌아가기

  1. 사서함의 Sieve 탭을 엽니다.
  2. 오른쪽 위 기본값으로 재설정을 클릭합니다.
  3. 작업을 확인합니다.

원시 코드가 삭제되고 저장된 시각적 필터에서 자동 생성된 코드가 복원됩니다.

필터 탭에서 변경 사항을 저장해도 관리형 코드로 돌아갑니다. 자동 회신은 원시 코드를 덮어쓰지 않으므로 먼저 관리형 모드로 전환하세요.

흔한 오류와 해결 방법

require 누락. "unknown command fileinto"가 나오면 위에 require ["fileinto"];를 추가합니다.

세미콜론 누락. 모든 명령 끝에 필요합니다. 특히 stop, discard, fileinto를 확인하세요.

문자열 따옴표 누락. 폴더, 주소, 값에는 큰따옴표가 필요합니다. fileinto Newsletters;는 실패하고 fileinto "Newsletters";가 맞습니다.

플래그의 역슬래시. \Flagged\Seen"\\Flagged", "\\Seen"처럼 두 개가 필요합니다. 하나는 이스케이프 문자입니다.

폴더 없음. 먼저 메일 앱에서 만드세요. 스크립트와 서버가 지원하지 않으면 자동 생성되지 않습니다.

스크립트가 너무 큼. 수백 줄을 넘으면 일부 규칙을 시각적 도구로 옮길 수 있는지 검토하세요.

관련 문서

워크플로를 이어가는 인근 가이드로 이동하세요.

TrekMail 운영과 보호에 필요한 기술을 사용합니다. 확인하면 쿠키 정책에 설명된 제한적인 분석 및 광고 측정도 허용됩니다.

TrekMail 로그인

대시보드, 메일함, DNS에 액세스하세요.

또는

12자 비밀번호 일치

또는

재설정 이메일 전송됨

이 이메일로 등록된 계정이 있으면 비밀번호 재설정 안내를 보내드렸습니다.

계속 진행하면 TrekMail의 이용약관개인정보 처리방침에 동의하게 됩니다.