나는 당신의 질문이 다음과 같이 다시 쓰여질 것입니다 :
smtpd (포트 25) 및 제출 (포트 587)에 다른 _header_checks를 어떻게 사용합니까?
이 정식 문제는 몇 가지 조건으로 나눌 수 있습니다
- smtpd 또는 제출 중 하나에 대해 header_checks를 끄고 싶습니다.
- smtpd 및 제출에 대해 다른 header_checks를 실행하고 싶습니다.
1. smtpd 또는 제출 중 하나에 대해 header_checks를 끄고 싶습니다.
예를 들어 제출을 위해 header_checks를 끄고 싶다고 가정합니다 (보내는 이메일) .
해결 방법 1 : receive_override_options 방법
receive_override_options 라는 postfix 매개 변수를 사용할 수 있습니다 . 이 매개 변수를 사용하면 전역 header_check 스위치를 재정의 할 수 있으므로 필터가 실행되지 않습니다. # main.cf header_checks = pcre : / path / to / header_checks
#master.cf
submission inet n - n - - smtpd
-o receive_override_options=no_header_body_checks
주의 사항 : man 5 header_checks에 정의 된 모든 _header_checks 및 body_checks가 해제됩니다 . 꺼질 매개 변수의 완전한 제어에 대해서는 솔루션 2를 참조하십시오.
해결 방법 2 : 여러 정리 서비스 방법
우리는 할 수있는 다중 정리 서비스 기술 로 문제 *_header_checks
에 의해 수행되었다 정리 서비스를 제공합니다. amavisd-new tutorial 에서이 설정의 예를 볼 수 있습니다 .
이 구성의 마법 매개 변수는 cleanup_service_name 입니다. 이 매개 변수를 사용하면 각 smtpd 프로세스마다 다른 정리 서비스를 사용할 수 있습니다. 먼저 master.cf에 추가 정리 서비스 (헤더 없음 점검)를 하나 정의합니다.
no-headerchecks unix n - n - 0 cleanup
-o mime_header_checks=
이 정리에서는 필터링을 비활성화하기 위해 빈 mime_header_checks를 정의합니다. 마지막 단계는 제출 서비스에 헤더 없음 확인을 사용하도록 지시하는 것입니다.
submission inet n - n - - smtpd
-o cleanup_service_name=no-headerchecks
2. smtpd 및 제출에 대해 다른 header_checks를 실행하고 싶습니다.
이 문제의 경우 위에서 설명한대로 다중 정리 서비스 방법을 사용할 수 있습니다.
먼저 master.cf에 추가 정리 서비스 (두 번째 헤더 검사라고 함)를 하나 정의합니다.
second-headerchecks unix n - n - 0 cleanup
-o mime_header_checks=pcre:/path/to/2ndheaderchecks
이 정리에서는 두 번째 mime_header_checks를 다른 PCRE 테이블에 정의합니다. 마지막 단계는 제출 서비스에게 두 번째 헤더 확인을 사용하도록 지시하는 것입니다.
submission inet n - n - - smtpd
-o cleanup_service_name=second-headerchecks
노트 :
귀하의 사례는 이 질문 과 유사 합니다. 불행히도 Laurentiu Roescu의 답변은 smtp를 전송으로 사용 하는 발신 메일에 대해 header_checks를 활성화하려는 경우에만 작동합니다 . 좋은 소식은 cleanup
데몬 에 대한 그의 첫 문장 이 두 번째 해결책에 대한 아이디어를 제공한다는 것입니다.
에 다른 header_checks, body_checks 및 기타 매개 변수를 정의하려는 경우 다중 정리 서비스 방법을 적용 할 수 있습니다 man 5 header_checks
.