표준 시브(Sieve) 함수 외에도 Messaging Server는 addheader, addtag, spamtest 및 spamadjust를 비롯한 여러 확장에 대한 지원을 제공합니다. addheader 및 addtag는 스팸 메시지에 SpamAssassin 점수가 포함된 헤더 추가 및 SpamAssassin 결과 문자열을 제목 줄에 추가에 설명되어 있습니다.
관리자는 이러한 확장을 사용하여 서로 다른 임계값을 설정하고 SpamAssassin 답신을 대체하는 목록을 설정할 수 있습니다. 특정 메시지를 받는 사용자에 따라 두 가지를 결합하여 서로 다른 임계값을 지정할 수 있습니다. spamadjust는 비표준 작업입니다. spamtest는 ftp://ftp.isi.edu/in-notes/rfc3685.txt 에 설명되어 있습니다.
addtag에서 여러 제목 줄 태그 추가를 구분하는 데 사용되는 내부 구분자 문자가 공백에서 세로 막대로 바뀌었습니다. 따라서 일부 스팸 필터에서 필요한 대로 공백이 포함된 태그를 추가할 수 있습니다. 예를 들어, 이전에는 addtag "[Probable Spam]"이 addtag "[Probable" 및 add tag "spam]"을 의미했습니다. 이제는 "[Probable Spam]"이라는 단일 태그로 간주됩니다. 이 변경으로 세로 막대는 태그에 사용할 수 없습니다.
spamtest를 사용하면 시브(Sieve) [RELATIONAL] 확장을 "i;ascii-numeric" 구분 문자와 함께 사용하여 SpamAssassin 점수를 특정 값과 비교할 수 있습니다. SpamAssassin 점수는 일반적으로 실수이지만 spamtest는 점수를 근사 정수로 반올림하여 0과 10 사이의 정수 값으로 강제합니다. 0 미만인 값은 0으로 반올림되고 10을 초과하는 값은 10으로 내림합니다. Messaging Server에서 유지 관리되는 텍스트 문자열을 첨부하여 spamtest 테스트에 표시되는 테스트 문자열을 생성합니다. :percent는 spamtest에서 지원됩니다( SIEVE Email Filtering: Spamtest and Virustest Extensions draft-ietf-sieve-spamtestbis-05 참조).
spamadjust는 현재 스팸 점수를 조정하는 데 사용됩니다. 이 작업은 실수 값에 대해 스캔되는 단일 문자열 인수를 가져옵니다. 이 값은 현재 스팸 점수를 조정하는 데 사용됩니다. 전체 문자열이 현재 점수 텍스트 문자열에 첨부됩니다. 아래에 표시된 예에서 문자열은 "undisclosed recipients"”
여러 spamadjust 작업이 허용되고 각 작업이 현재 점수에 추가됩니다. 점수 값은 항상 0에서 시작합니다. 서명된 숫자값을 허용하여 현재 점수를 내리거나 높일 수 있습니다. spamadjust의 require 절이 없으므로 spamtest 확장이 대신 나열되어야 합니다.
예를 들어, SpamAssassin MODE 설정 2와 함께 사용할 수 있는 spamadjust는 다음과 같습니다.
spamfilterX_string_action=data:,require ["spamtest"];spamadjust "$U";
시스템 수준 시브(Sieve) 필터는 특정 헤더 유형(있는 경우)을 검사한 다음 SpamAssassin 점수에 5를 더하여 SpamAssassin 점수를 수정할 수 있습니다.
require "spamtest"; if header :contains ["to", "cc", "bcc", "resent-to", "resent-cc", "resent-bcc"] ["<undisclosed recipients>", "undisclosed.recipients"] {spamadjust "+5 undisclosed recipients";} |
마지막으로 사용자 수준 시브(Sieve) 스크립트는 결과 값을 테스트하고 스팸으로 확인된 메시지를 삭제하고, 스팸일 확률이 있는 메시지를 파일로 저장하고, 메시지를 로컬 도메인의 주소에서 통과하도록 허용할 수 있습니다.
require ["spamtest", "relational", "comparator-i;ascii-numeric", "fileinto"]; if anyof (address :matches "from" ["*@siroe.com", "*@*.siroe.com"]) {keep;} elsif spamtest :value "ge" :comparator "i;ascii-numeric" "8" {discard;} elsif spamtest :value "ge" :comparator "i;ascii-numeric" "5" {fileinfto "spam-likely";} else {keep;} |