이 예에서는 SpamAssassin 점수를 기준으로 메시지를 필터링하는 방법을 보여줍니다. 여기서는 spamadjust 및 spamtest 시브(Sieve) 필터 작업을 사용합니다. 이 예에서는 SpamAssassin 점수를 포함하는 헤더가 모든 메시지에 추가됩니다. SpamAssassin 소프트웨어 관리자는 이 헤더를 사용하여 SpamAssassin을 조정하고 스팸 전자 메일 감지 성능을 향상시킬 수 있습니다. 메시지의 SpamAssassin 점수가 5에서 10까지인 경우에는 메시지가 사용자 계정의 spam 폴더에 필터링됩니다. 메시지의 SpamAssassin 점수가 10보다 큰 경우에는 메시지가 삭제됩니다. 기본적으로 SpamAssassin에서는 점수가 5 이상인 메시지를 스팸으로 간주합니다.
필터링할 메시지를 지정합니다.
이 내용은 스팸을 별도의 폴더에 정리의 단계 3에 설명되어 있습니다.
SpamAssassin 구성 파일을 만듭니다.
이 파일의 이름과 위치는 spamfilter_configX_file을 사용하여 지정합니다(다음 단계 참조). 이 파일은 다음과 같은 행으로 구성되어 있습니다.
debug=1 host=127.0.0.1 port=783 mode=2 field= |
host 및 port는 spamd가 실행 중인 시스템의 이름과 spamd가 받는 요청을 수신하는 포트를 지정합니다. mode=2는 점수에 관계 없이 항상 SpamAssassin 결과 문자열을 반환하도록 지정합니다. field=는 SpamAssasin 결과 문자열의 문자열 접두어를 지정합니다. 이 예에서는 시브(Sieve) 스크립트로 지정하기 때문에 접두어가 필요하지 않습니다. debug=1은 SpamAssassin 라이브러리에서 디버깅을 설정합니다.
option.dat 파일에 다음 행을 추가합니다.
! For SpamAssassin spamfilter1_config_file=/opt/SUNWmsgsr/config/spamassassin.opt spamfilter1_library=/opt/SUNWmsgsr/lib/libspamass.so spamfilter1_optional=1 spamfilter1_string_action=data:, require ["addheader","spamtest"]; \ spamadjust "$U"; addheader "Spam-test: $U" |
앞의 예와 마찬가지로 처음 세 행은 SpamAssassin 구성 파일과 공유 라이브러리를 지정하고 공유 라이브러리에 오류가 있을 경우 MTA 작업을 계속하도록 지정합니다. 마지막 두 행에서는 spamtest 작업에 사용되는 SpamAssassin($U) 반환 문자열에서 SpamAssassin 점수를 추출하고 모든 메시지에 스팸 점수 헤더를 추가하도록 지정합니다(예: Spam-test: True; 7.3/5.0).
스팸 점수를 기준으로 전자 메일을 처리하는 채널 수준 필터를 만듭니다.
채널 수준 필터 만들기를 참조하십시오. 해당 파일에 다음 규칙을 추가합니다.
require ["spamtest","relational","comparator-i;ascii-numeric","fileinto"]; if spamtest :value "ge" :comparator "i;ascii-numeric" "10" {discard;} elsif spamtest :value "ge" :comparator "i;ascii-numeric" "5" {fileinto "spam";} else {keep;} |
두 번째 행에서는 SpamAssassin 점수가 10 이상인 경우 스팸 전자 메일을 삭제합니다. 세 번째 행에서는 점수가 5 이상인 경우 전자 메일을 사용자의 "spam" 폴더에 파일로 보관합니다. 마지막 행 else {keep;}에서는 점수가 5 미만인 모든 메시지를 보관합니다.
구성을 다시 컴파일하고 서버를 다시 시작한 다음 spamd 데몬을 시작합니다.
스팸을 별도의 폴더에 정리의 마지막 단계를 참조하십시오.