Postfix: 특정 도메인에만 header_checks를 적용하는 방법은 무엇입니까?

Postfix: 특정 도메인에만 header_checks를 적용하는 방법은 무엇입니까?

기본적으로 내가 원하는 것은 header_checks를 사용하여 From: 헤더를 다시 작성하는 것이지만 메일이 특정 도메인으로 이동하는 경우에만 해당됩니다.

header_check의 문제점은 To: 및 From: 헤더의 조합을 확인할 수 없다는 것입니다.

이제 smtpd_restriction_classes 또는 이와 유사한 것과 함께 header_checks를 사용할 수 있는지 궁금합니다.

나는 인터넷을 검색할 때 header_checks와 여러 헤더 필드에 대한 많은 정보를 발견했습니다. 그들 모두는 기본적으로 확인을 위해 두 개의 헤더를 결합할 수 없다고 말했습니다. 하지만 조건(예: 메일이 example.com으로 이동함)이 충족된 경우에만 헤더 확인이 가능하다면 어떤 정보도 찾지 못했습니다.


편집하다:

좀 더 조사를 하다가 다음과 같은 사실을 발견했습니다.기사이는 postfix master.cf에 서비스를 추가할 것을 제안하고, 전송 맵을 사용하여 도메인에 대한 메일을 해당 서비스에 전달하고 -o로 정의된 별도의 header_check를 갖습니다.

문제는 내가 일을 할 수 없다는 것입니다 ...

지금까지 내가 한 일은 master.cf에 서비스를 추가하는 것이었습니다.

example      unix  -       -       n       -       -       smtpd
    -o header_checks=regexp:/etc/postfix/check_headers_example

TransportMap에 다음 줄을 추가합니다.

example.com                 example:

마지막으로 헤더 확인을 위한 두 개의 정규식 파일이 있습니다. 하나는 새로 추가된 서비스용이고 다른 하나는 응답을 다시 작성된 도메인으로 리디렉션하는 데 사용됩니다.

check_headers_example:

/From:(.*)@mydomain.ain>(.*)/ REPLACE From:[email protected]>$2

분명히 누군가가 응답하면 메일은 열반으로 갈 것이므로 기본 postfix 프로세스에 다음 check_headers를 정의했습니다.

/To:(.*)<(.*)@mydomain.example.com>(.*)/ REDIRECT [email protected]$2

어떻게 든 Transport는 무시됩니다. 도움을 주시면 감사하겠습니다.


편집 2:

여전히 멈췄습니다. 다음을 시도했습니다.

smtpd_restriction_classes = header_rewrite 
header_rewrite = regexp:/etc/postfix/rewrite_headers_domain 
smtpd_recipient_restrictions = (some checks) check_recipient_access hash:/etc/postfix/rewrite_table, (more checks) 

rewrite_table다음 항목이 존재합니다 :

/From:(.*)@mydomain.ain>(.*)/ REPLACE From:[email protected]>$2 

나에게 얻는 것은 NOQUEUE: reject: 451 4.3.5 Server configuration error. 어떻게 그렇게 할 것인지에 대한 자료를 찾을 수 없었지만 어떤 사람들은 그것이 불가능하다고 말했습니다.


편집 3:

제가 이 질문을 한 이유는 메일을 도메인(예: example.com)으로 전달하는 일부 별칭을 사용하는 고객(customer.com이라고 가정)이 있기 때문입니다.

example.com의 메일 서버는 발신자 @example.com이 보내는 외부 서버의 메일을 허용하지 않습니다.

따라서 example.com에서 다음으로 작성된 모든 메일은[이메일 보호됨]결국 거절당하게 됩니다.

example.com의 메일 서버에 대한 예외는 불가능합니다.

우리는 이 문제를 실제로 해결하지는 못했지만 별칭 대신 목록(mailman)을 사용하여 해결하려고 노력할 것입니다. 하지만 이것은 실제로 좋은 것도 아니고 실제 해결책도 아닙니다.

이것이 어떻게 적절한 방법으로 이루어질 수 있는지 모든 제안에 감사드립니다.

답변1

원하시는 바를 이루셨는지 모르겠네요. 나는 비슷한 것을 테스트하고 있었고 도메인별로 키워드 필터링 등이 필요했으며 도메인별로 또는 postfix의 다중 인스턴스 기능을 사용하여 내가 원하는 도메인에 대해 header_checks를 사용할 수 있었습니다.

인스턴스를 생성하고 특정 인스턴스의 smtp 포트만 변경하면 됩니다. 기본 인스턴스에서 Transport_maps를 사용하여 특정 도메인의 이메일을 보조 인스턴스의 smtp 포트로 라우팅합니다. 그리고 거기에서 모든 header_checks를 수행하고 이메일을 전달하세요!

건배!

답변2

새 서버를 설정하고 전송 파일을 사용하여 처리하려는 모든 도메인을 라우팅한 다음 새 서버에 header_checks 규칙을 적용할 수 있습니다.

관련 정보