Postfix catch all은 virtual_alias_maps의 다른 모든 패턴을 재정의합니다.

Postfix catch all은 virtual_alias_maps의 다른 모든 패턴을 재정의합니다.

Postfix를 사용하여 'catch all' 및 'catch all 재정의'를 사용하여 모든 스레드를 검사했지만 여전히 내 문제에 대한 해결책을 얻을 수 있다고 생각합니다. 들어오는(유일한) smtp 서버가 있습니다 Postfix version 3.5.8. 오픈 릴레이 virtual_alias_domains=static:yes로 만들고 싶고 /etc/postfix/main.cf. 그런 다음 수신자 도메인에 따라 이 메시지를 소수의 사용자에게 발송하고 싶습니다. 그래서 pcre를 사용하여 몇 가지 패턴을 만들었습니다 virtual_alias_maps = pcre:/etc/postfix/virtual.

/1@test/ test
/2@test/ test2
/@test/ catchallfromtest
/@/ catchall

~와 함께/etc/postfix/aliases

test: "/var/mail/test.mail"
test2: "/var/mail/test2.mail"
catchallfromtest: "/var/mail/catchallfromtest.mail"
catchall: "/var/mail/catchall.mail"

내가 주석을 달면   /@/ catchall이메일이 올바르게 발송되지만 그렇지 않으면 모든 이메일이 포괄 이메일로 이동됩니다. 나는 많은 아이디어를 시도했습니다 (다른 순서, 다른 db 유형, virtual_alias_map일부 사용자의 경우 및 포괄의 경우 receive_bcc_maps를 사용하여 별도의 파일로 분할). luser_relay하지만 작동하므로 $mydomain패턴에서 제외하여 내 경우에는 작동하지 않습니다. 그리고 행 ( !//))과 다양한 형태의 캐치올( //, /.*@.*/, 등)이 /^.*@.*&/있습니다 . /.+@.+/내가 그것을 테스트하려고 할 때

postmap -q "1@test" pcre:/etc/postfix/virtual

올바른 별칭을 반환하지만 이메일을 보내려고 하면 catchall로 이동합니다. 또 무엇을 시도해 볼 수 있나요? [문서][1]에서

Patterns are applied in the order as specified in the  table,  until  a pattern is found that matches the input string.

따라서 첫 번째 패턴 일치 직후에 중지되어야 하지만 그렇지 않습니다. [1]:http://www.postfix.org/pcre_table.5.html

관련 정보