표준 Sieve 함수 외에도 Messaging Server는 addheader, addtag, spamtest 및 spamadjust를 비롯한 여러 확장에 대한 지원을 제공합니다. addheader 및 addtag는 스팸 메일에 SpamAssassin 점수를 포함하는 헤더 추가 및 SpamAssassin 결과 문자열을 제목 행에 추가 에 설명되어 있습니다.
관리자는 이러한 확장을 사용하여 서로 다른 임계값을 설정하고 SpamAssassin 답신을 대체하는 목록을 설정할 수 있습니다. 특정 메일을 받는 사용자에 따라 두 가지를 결합하여 서로 다른 임계값을 지정할 수 있습니다. spamadjust는 비표준 작업입니다. spamtest는 ftp://ftp.isi.edu/in-notes/rfc3685.txt에 설명되어 있습니다.
spamtest를 사용하면 Sieve [RELATIONAL] 확장을 "i;ascii-numeric" 구분 문자와 함께 사용하여 SpamAssassin 점수를 특정 값과 비교할 수 있습니다. SpamAssassin 점수는 일반적으로 실수이지만 spamtest는 점수를 근사 정수로 반올림하여 0과 10 사이의 정수 값으로 강제합니다. 0 미만인 값은 0으로 반올림되고 10을 초과하는 값은 10으로 내림합니다. Messaging Server에서 유지 관리되는 텍스트 문자열을 첨부하여 spamtest 테스트에 표시되는 테스트 문자열을 생성합니다.
spamadjust는 현재 스팸 점수를 조정하는 데 사용됩니다. 이 작업은 실수 값에 대해 스캔되는 단일 문자열 인수를 가져옵니다. 이 값은 현재 스팸 점수를 조정하는 데 사용됩니다. 전체 문자열이 현재 점수 텍스트 문자열에 첨부됩니다. 아래의 예에서 문자열은 “ undisclosed recipients”입니다.
여러 spamadjust 작업이 허용되고 각 작업이 현재 점수에 추가됩니다. 점수 값은 항상 0에서 시작합니다. 서명된 숫자값을 허용하여 현재 점수를 내리거나 높일 수 있습니다. spamadjust에 대한 require 절이 없으므로 spamtest 확장이 대신 나열되어야 합니다.
예를 들어, SpamAssassin MODE 설정 2와 함께 사용할 수 있는 spamadjust는 다음과 같습니다.
spamfilterX_string_action=data:,require ["spamtest"];spamadjust "$U";
시스템 수준 Sieve 필터는 특정 헤더 유형(있는 경우)을 검사한 다음 SpamAssassin 점수에 5를 더하여 SpamAssassin 점수를 수정할 수 있습니다.
spamfilter1_string_action=require "spamtest"; \ if header :contains ["to", "cc", "bcc", "resent-to", "resent-cc", \ "resent-bcc"] ["<undisclosed recipients>", "undisclosed.recipients"] \ {spamadjust "+5 undisclosed recipients";} |
마지막으로 사용자 수준 Sieve 스크립트는 결과 값을 테스트하고 스팸으로 확인된 메일을 삭제하고, 스팸일 확률이 있는 메일을 파일로 저장하고, 메일을 로컬 도메인의 주소에서 통과하도록 허용할 수 있습니다.
spamfilter1_string_action=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" \ {fileinfo "spam-likely";} \ else \ {keep;} |