Sheve(메일필터링 언어)

Sieve (mail filtering language)
원저작자Washington 대학교와 Carnegie Mellon 대학교[1], Tim Showalter에 의해 표준화됨
초기 릴리즈1999년; 23년 전(1999년)[1]
운영 체제크로스 플랫폼
유형전자 메일 필터링
웹 사이트sieve.info

Sieve이메일 필터링에 사용할 수 있는 프로그래밍 언어입니다.Cyrus IMAP 서버의 크리에이터인 CMU Cyrus Project에 의해 탄생했습니다.

이 언어는 특정 운영 체제나 메일 아키텍처에 연결되어 있지 않습니다.이 방법에서는 RFC-2822 준거 메시지를 사용해야 하지만 그렇지 않으면 이러한 기준을 충족하는 다른 시스템으로 일반화해야 합니다.Sieve의 기본 사양의 현재 버전은 2008년 1월에 발행된 RFC 5228에 개략적으로 설명되어 있습니다.

언어

Sieve는 procmailmaildrop과 같은 이전 이메일 필터링 언어 및 sed 및 AWK와 같은 이전 줄 지향 언어와 유사한 데이터 기반 프로그래밍 언어입니다. 일치 조건과 일치 시 수행할 작업을 지정합니다.

이는 매우 제한적이라는 점에서 범용 프로그래밍 언어와는 다릅니다.기본 표준에는 변수가 없고 루프가 없기 때문에(단, 조건부 분기는 허용), 폭주 프로그램을 방지하고 언어를 단순한 필터링 조작으로 제한합니다.확장기능은 변수를 포함하도록 언어를 확장하고 루프를 제한하기 위해 고안되었지만, 이 언어는 여전히 매우 제한적이기 때문에 메일 시스템의 일부로서 사용자가 조작한 프로그램을 실행하기에 적합합니다.

언어 해석의 복잡성을 줄이기 위해 언어의 문법에도 상당한 제약이 있지만 언어에서는 현지화된 문자열을 비교하기 위한 여러 메서드의 사용도 지원하며 완전한 Unicode를 인식합니다.

원래 Sieve는 [2][3]SMTP 외부 툴로 생각되었지만, RFC 5429는 SMTP 프로토콜 [4]수준에서 거부를 허용하기 위해 우연히 확장합니다.

사용하다

Sieve 스크립트는 GUI 기반 규칙 편집기에서 생성하거나 텍스트 편집기를 사용하여 직접 입력할 수 있습니다.

스크립트는 서버에 따라 메일 서버로 전송됩니다.ManageSieve 프로토콜(RFC 5804에서 정의)을 사용하면 사용자는 리모트서버에서 Sieve 스크립트를 관리할 수 있습니다.로컬 사용자가 있는 메일서버는 스크립트를 사용자의 홈디렉토리의 .sieve 파일과 같이 저장할 수 있습니다.

역사

이 언어는 Tim Showalter에 의해 2001년 1월의 RFC 3028에서 표준화되었습니다.

내선번호

IETF Sieve 작업[5] 그룹은 2008년에 기본 사양을 갱신하고(RFC 5228) 다음 확장을 Proposed Standard 상태로 만들었습니다.

  • RFC 5173 – 본문. 스크립트는 헤더뿐만 아니라 메시지 본문을 테스트할 수 있습니다.
  • RFC 5229 - 변수.스크립트는 값을 변수에 저장 및 취득할 수 있습니다.
  • RFC 5230 – 휴가.수신자가 부재중일 가능성이 있음을 송신자에게 통지하는 응답을 송신하는 액션을 지정합니다.
  • RFC 5231 - 관계형 테스트.스크립트가 필드를 수치로 테스트하여 필드의 발생 횟수에 대해 테스트할 수 있도록 수치 테스트를 정의합니다.
  • RFC 5232 – IMAP4 플래그. 스크립트는 메시지의 IMAP 플래그를 테스트하고 설정할 수 있습니다.
  • RFC 5233 - 서브주소: 스크립트는 "user+detail@domain.example" 형식의 서브주소를 테스트할 수 있습니다.
  • RFC 5235 – Spamtest and Virustest :스크립트는 구현 의존 메시지필터링과 인터페이스 할 수 있습니다.
  • RFC 5260 – 날짜 및 인덱스 확장.
  • RFC 5293 - Editheader.스크립트는 메시지 헤더필드를 추가 및 삭제할 수 있습니다.
  • RFC 5429 - 거부.LMTP/SMTP 수준 또는 MDN 또는 DSN에서 메시지를 거부할 수 있습니다.
  • RFC 5435 – 알림.스크립트에 의해 이메일의 외부 알림을 트리거할 수 있습니다.
  • RFC 5436 - 전자 메일 알림, 전자 메일을 통한 알림을 지정합니다.
  • RFC 5437 - XMPP 알림.XMPP 경유 알림을 지정합니다.
  • RFC 5490 – 우편함 상태 확인 및 우편함 메타데이터 접근
  • RFC 5703 – MIME 부품 테스트, 반복, 추출, 교환 및 인클로저
  • RFC 5804 - Sieve 스크립트를 원격으로 관리하기 위한 프로토콜

다른 많은 확장기능이 아직 Sieve 작업그룹에 [citation needed]의해 개발되고 있습니다.

다음으로 체 스크립트의 예를 나타냅니다.

# 체 필터  # 이 스크립트에서 사용되는 확장을 선언합니다. # 요구하다 ["파일링, "실패"];  # 10K보다 큰 메시지는 오류 메시지와 함께 거부됩니다. # 한다면 크기 : 오버 100K단위 {    거절하다 "죄송합니다. 100KB 이상의 메일은 받지 않습니다.  더 큰 파일을 서버에 업로드하고 링크를 보내주세요. 감사합니다.; }  # 메일링 리스트의 메일은 "메일링 리스트" 폴더에 저장됩니다. # 엘시프 주소. : 이 ["발신인", "수신처"] "mailinglist@blafasel.in 유효" {    줄지어 들어가다 "INBOX.mailing list"; }  # 스팸 규칙: 메시지의 수신인, CC 또는 BCC에 내 주소가 포함되어 있지 않습니다. # header, 또는 주제는 "돈" 또는 "비아그라"가 있는 것입니다. # 엘시프 어느쪽인가 (것은 아니다. 주소. : 모두 : 개요 ["수신처", "Cc", "BCC"] "me@blafasel.in 유효",  머리글자 : 개요 "Subject(Subject) ['*돈*','*비아그라*']) {       줄지어 들어가다 "INBOX.spam"; }  # 나머지는 가지세요 # 암묵적인 유지 규칙이 있기 때문에 이것은 필요하지 않다. # 또 다른 {      지킨다; } 

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b "History - Sieve.Info".
  2. ^ 해당 Sieve는 메시지 수용이 정의 문서에 포함된 후 작동합니다.
  3. ^ SMTP 이외의 최종 전달은, SMTP 의 정의 문서에 기재되어 있습니다.
  4. ^ Aaron Stone (March 2009). "Rejecting a Message at the SMTP/LMTP Protocol Level". Sieve Email Filtering: Reject and Extended Reject Extensions. IETF. sec. 2.1.1. doi:10.17487/RFC5429. RFC 5429.
  5. ^ 2005-12-31 Wayback Machine에서 보관된 Sheve 작업 그룹 전세

외부 링크