수신 메일을 전송 (main.cf:) virtual_transport
으로 전달한 다음 스캔한 메일을 sendmail을 사용하여 postfix에 다시 삽입하고 싶습니다 .spamassassin
virtual_transport=spamassassin
교통수단은 다음과 같습니다.
spamassassin unix - n n - - pipe
flags=hu user=vmail:mail argv=/usr/bin/spamc -u ${recipient} -e /usr/sbin/sendmail -f ${sender} ${recipient}
이는 다음 사항에 따라 가능해야 합니다.접미사 문서:
대용량 사이트에서는 Postfix sendmail(1) 및 postdrop(1)을 통해 스캔한 메일을 다시 삽입하는 "단순" 콘텐츠 필터를 사용하지 않아야 합니다.
현재 sendmail 호출을 사용하면 /usr/sbin/sendmail -f ${sender} ${recipient}
메일이 대기열로 다시 전달된 다음 spamassassin으로 다시 전달되는 방식으로 반복됩니다.
postfix 문서에 대한 제가 이해한 바에 따르면, postfix를 사용하여 전달된 메일은 디렉토리 sendmail
에 삭제된 maildrop
다음 pickup
. -o virtual_transport=dovecot
대기열을 피하기 위해 픽업 전송에 a를 추가하려고 시도했지만 도움이 되지 않았습니다. (해당 옵션은 내가 생각하는 smtp 전송에만 추가될 수 있습니다.)
spamassassin으로 검사한 메일을 루프를 발생시키지 않고 최종 배달 대기열에 다시 삽입하려면 어떻게 해야 합니까?
답변1
spamassassin으로 검사한 메일을 루프를 발생시키지 않고 최종 배달 대기열에 다시 삽입하려면 어떻게 해야 합니까?
아니요 당신은 할 수 없습니다
설명
virtual_transport
나는 당신 이 이메일을 Spam Assassin에 연결하는 데 사용하는 이유를 이해합니다 . 으로 보내려는 이메일만 검사하고 싶습니다 virtual_mailbox_domain
. 불행히도 그것은 따르지 않습니다추천 간단한 콘텐츠 필터 설정content_filter
대신 매개변수를 사용하는 것입니다 virtual_transport
.
virtual_transport
왜 픽업이나 smtpd로 전달할 수 없나요 ?
일반적으로 접미사 코드를 통한 이메일 여정은 다음과 같습니다.
Input --> cleanup --> qmgr --> Output
*smtpd *local
*pickup *virtual
*qmqpd *smtp
*lmtp
*pipe
데몬 에서 cleanup
postfix는 가상, 로컬, smtp 또는 기타 전송 수단에 관계없이 이메일을 '라우팅'합니다. 한 가지 예외는 공백이 아닌 매개변수가 입력 서비스( , , ) content_filter
에 전달된 경우입니다 . 이런 일이 발생하면 postfix는 메시지 경로를 무시하고 대신 이메일을 보냅니다 .smtpd
pickup
qmqpd
content_filter
main.cf
또 다른 참고 사항은 기본적으로 모든 postfix 서비스는 다음을 사용하여 재정의하지 않는 한 매개 변수 값을 가져옵니다.-o 매개변수=값 에 master.cf
. 하지만 man 5 postconf
서비스에서 모든 매개변수를 사용하는 것은 아닙니다 . 예를 들어,콘텐츠_필터에서만 사용되므로 다음 을 넣을 수 있습니다 pickup
.smtpd
qmqpd
-o content_filter=amavis:[127.0.0.1:10025그들에. 또 다른 예를 들면 다음과 같습니다.-o smtp_bind_addresssmtpd
이 매개변수는 서비스에서만 사용 됩니다 smtp
.
동일한 주장이 "내가 왜 합격할 수 있는지"라는 질문에도 적용될 수 있습니다.-o virtual_transport안에 pickup
?"
설정에 대한 몇 가지 대안은 다음과 같습니다.
content_filter
postfix 문서에 설명된 대로 사용하세요 . 단점은 도메인 외부로 전달된 이메일도 검사한다는 것입니다.사용
content_filter
ACCESS 테이블 및 FILTER 작업을 통해. 이 방법을 사용하면 수신 이메일을 선택적으로 검사할 수 있습니다. 안타깝게도해당 테이블에 다시등록해야 합니다. . ACCESS 테이블을 , 뒤에 조심스럽게 배치하면 이를 방지할 수 있습니다virtual domain
permit_mynetworks
.permit_sasl_authenticated
이 방법을 사용하면 보내는 이메일이 이미 허용되며 들어오는 이메일만 검사할 수 있습니다. (OP 의견에 대한 크레딧:) )사용접미사 다중 인스턴스. 이 방법을 사용하면 매개변수를 유지할 수
virtual_transport
있으며 spamc는 두 번째 인스턴스에 이메일을 삽입합니다. 그런 다음virtual_transport
다른 인스턴스에서 다르게 정의할 수 있습니다. 그러나 설정을 단순하게 유지하려는 경우에는 약간 과잉입니다.