스크립트를 통해 사용자 정의 필터를 사용하여 인바운드 이메일 거부

스크립트를 통해 사용자 정의 필터를 사용하여 인바운드 이메일 거부

배경 및 요구 사항

이 주제에 대한 많은 참고 문서와 Q&A 게시물을 찾았지만 디자인의 핵심 영역을 파악할 수 없었습니다.

사용자 정의 분석 알고리즘을 기반으로 인바운드 이메일을 거부하고 싶습니다. 분석을 수행하는 Python 스크립트가 있고 현재 Gnome Evolution에서 메일 필터로 호출하여 테스트하고 있습니다. 모든 것이 예상대로 어느 정도 작동하는 것 같습니다. Python의 반환 코드 해석과 Evolutions 메일 필터링 시스템 사이에는 약간의 미묘한 차이가 있는 것으로 보이지만 그 외에는 작동합니다.

이 단계에서는 오픈 소스여야 한다는 점을 제외하면 어떤 기술이나 시스템에도 얽매이지 않습니다. 이상적으로는 Debian(또는 Ubuntu)에서 실행되어야 하므로 Postfix가 가장 적합해 보입니다.

문제 영역

저는 보다 자율적인 수준에서 작동하는 통합을 설계하고 받은 편지함에서 이메일을 필터링하는 데 시간을 낭비하지 않도록 게이트웨이 등(예: Postfix)을 조사해 왔습니다. 대기열 필터 이전의 경량 항목을 볼 수 있습니다(예:여기) 이 후크에서 스크립트를 호출하는 방법을 볼 수 있습니다.여기이지만 스크립트에서 반환 코드를 가져오지는 않습니다.

문서에서 찾을 수 없는 것은 스크립트의 결과 코드/반환 코드를 Postfix에 적용하여 메시지를 허용할지 거부할지 결정하는 방법입니다.

이 솔루션은 다음을 수행할 수 있어야 합니다.거부하다대신에 이메일버리다(안타깝게도 어떤 이유로 여기에 들어갈 수 없습니다). 대기열에 추가된 이메일에서 수집된 대조 데이터 항목 목록을 확인하고 자동으로 Postfix 구성에 더 많은 필터를 추가하는 크론 작업을 생각해냈습니다. 이는 문제의 일부만 해결하며 새 이메일이 없더라도 서버에서 무언가가 실행된다는 것을 의미합니다.

긴 이야기 짧게그래서 내 질문은 다음과 같습니다

  1. MTA에서 스크립트를 호출하고 스크립트/호출 결과를 얻는 방법은 무엇입니까? 예를 들어 전화를 걸어 scan.pya를 받거나 0돌아 1옵니다 .
  2. 문서에서 Postfix(또는 기타 유사한 오픈 소스 시스템)의 어떤 메커니즘을 참조한 다음 이 결과를 작업에 바인딩해야 합니까?

답변1

이는 스크립트를 milter로 설정하여 수행할 수 있습니다. MILTER_README를 참조하세요. 그러나 이는 결코 쉽지 않은 작업이 될 수 있습니다. 아마도 다른 사람들이 귀하의 목적에 맞게 충분히 좋은 것을 구현했는지 확인해 볼 가치가 있을 것입니다.여기.

관련 정보