2014-10-01 4 views
1

저는 얼마 전에 SpamAssassin을 읽었으며 많은 것을 배웠습니다. 그러나 제 3 자 스크립트가있을 수있는 규칙을 만들 수있는 방법을 찾지 못하는 것 같아 보입니다. 맞춤 규칙을 위해 실행되었습니다. 이것은 전 세계적으로 사용자를 기반으로하지 않아야합니다.쉘 명령을 실행하는 SpamAssassin 사용자 정의 규칙

도메인 및 이메일 주소에 대한 추가 확인을 실행하고 싶습니다.

도메인이나 이메일 주소가 연락처 목록 및 기타 사항과 비교하여 검사되는 평판 시스템을 만들고 싶습니다.

정규식 규칙을 추가하기 위해 프로필을 수정하는 것을 고려해 보았지만 복잡한 규칙을 수행하는 것처럼 보입니다. 더 선호되는 시나리오는 단순히 각 도메인 및 전자 메일 주소에 대한 점수를 반환하는 타사 스크립트를 실행하는 것입니다.

답변

1

기본적으로 SpamAssassin에는 이러한 기능이 없지만 프로그래밍 사이트에서 질문을하기 때문에 독자가 직접 코드를 작성하는 것은 외계인이 아닌 것으로 간주합니다.

SpamAssassin의 플러그인 기능은 이러한 종류의 작업을 위해 설계되었습니다. SpamAssassin이 분석하는 각 메시지에 대해 호출되는 Perl 코드를 생성 할 수 있으며 Perl이 액세스 할 수있는 모든 것에 액세스 할 수 있습니다.

특히 외부 프로그램을 호출하고 분석 결과를 SpamAssassin으로 반환하는 pyzor plugin을 살펴보십시오. 상당한 양의 상용구가 있지만 처음부터 시작해야하는 부분은 helper_app_pipe_open 호출에 대한 올바른 인수를 얻는 것입니다 (위에서 링크 된 버전 3.4.0에서 282 번째 줄에 있음). 이러한 것들은 설정이 가능하기 때문에 개념 증명으로 자신의 프로그램에 pyzor의 경로를 재구성 할 수도 있습니다. check 인수 W 일부 다른 매개 변수 W 표준 입력의 임시 파일에서 오는 메시지를 승인해야합니다.

Mail::SpamAssassin::Plugin.pm에는 플러그인 API에 대한 POD 설명서가 포함되어 있습니다. 모듈 트리의 다른 파일에도 유용한 문서가 있습니다. 특히 플러그인에 전달할 수있는 구성 매개 변수를 이해하려면 Mail::SpamAssassin.pmMail::SpamAssassin::Conf.pm의 일반 설명서를 참조하십시오.

+0

exec에 대한 호출이있는 규칙을 추가하는 방법은 무엇입니까? SA에 한 모든 변경을 요구하지 않기 위해 사용자 구성 작업을 수행하려고합니다. – transilvlad

+0

그런데 왜 프로그래밍 사이트에 게시합니까? 그러나 어쨌든, 나는'pyzor' 플러그인을 사용하는 아이디어를 되풀이하지만 대신 자신의 점검 도구를 호출하게 할 것입니다. 당신은'pyzor' 플러그인이 기대하는 것처럼 동작하도록 약간의 줄 바꿈이 필요할 것입니다. 그러나 너무 어렵지 않아야합니다. – tripleee

0

최근에 본 보낸 사람을 자동으로 인식하는 새로운 TxRep 플러그인이 있습니다. whitelist and blacklist options 컬렉션도 있습니다.

직접 구현하려는 경우 exec 메커니즘이 확장되지 않는다는 것을 빨리 알게 될 것입니다. 대신 자신의 DNSBL을 직접 만들어보십시오. 맞춤 코드 및 모든 DNS 서버 (예 : bind, dnsmasq 등)를 사용하거나이 목적으로 설계된 DNS 서버 (예 : RBLDNSD)를 사용하여이 작업을 수행 할 수 있습니다. DnsBlocklists에있는 SA 위키에는 SA에 연결하는 방법이 나와 있습니다.

일반적으로 이러한 종류의 솔루션을 찾는 사람들에게는 DNSBL이 올바르게 구성되어 있지 않습니다. 나는 당신 자신의 프로젝트를 만들려고하기 전에 그것에 대해 살펴볼 것입니다.