Postfix(2.11.3)를 사용하여 모든 메일을 외부 주소로 리디렉션하고 싶습니다.
/etc/postfix/main.cf
:
virtual_alias_maps = regexp:/etc/postfix/rewrite
/etc/postfix/rewrite
:
/^.+$/ [email protected]
에 이메일을 보낼 때 [email protected]
다음 오류가 발생했습니다.
[...] to=<[email protected]>, orig_to=<[email protected]> [...] status=bounced (User unknown in virtual alias table)
문서설명하다:
유효한 수신자 주소는 virtual_alias_maps 매개변수와 함께 나열됩니다. Postfix SMTP 서버는 "가상 별칭 테이블의 사용자를 알 수 없습니다"를 통해 잘못된 수신자를 거부합니다.
오류는 가상 별칭 도메인의 유효성 검사와 관련이 있는 것으로 밝혀졌습니다. virtual_alias_domains
기본적으로 $virtual_alias_maps
이를 다른 것으로 설정 (일치하지 않는 도메인으로 설정하거나 공백으로 남겨두기)하면 문제가 해결됩니다.
내가 찾은 또 다른 해결책하나의 대답으로정규식을 다른 형식으로 제공:
/^.+@.+$/ [email protected]
그래서 내 질문은 가상 별칭에 정규식 테이블을 사용할 때 별칭 도메인의 유효성 검사가 어떻게 작동합니까? 다른 값으로 설정하면 virtual_alias_domains
문제가 해결되는 이유는 무엇입니까? 위의 두 가지 주소 매핑 방법의 동등한 모드 간의 차이점은 무엇입니까?
출력은 postconf -n
다음과 같습니다
config_directory = /etc/postfix
inet_interfaces = loopback-only
inet_protocols = ipv4
mydestination =
myhostname = example.org
myorigin = $myhostname
virtual_alias_domains =
virtual_alias_maps = regexp:/etc/postfix/rewrite
답변1
[email protected]
배달 해야 할 우편물이 있다고 가정해 보겠습니다 .
에 지정된 맵은 virtual_alias_domains
도메인 부분( )을 키로 사용하여 조회되며 example.net
가상 별칭 도메인인 경우 아무것도 반환하지 않을 것으로 예상됩니다. 그렇지 않으면 아무것도 반환되지 않습니다. 즉, 키가 정의되지 않아야 합니다. virtual_alias_maps
지도를 조회하기 위한 키로 전체 주소( )를 사용하면 [email protected]
재정의된 주소가 반환될 것으로 예상됩니다.
/etc/postfix/virtual
이는 에서 설명한 간단한 해시 맵 처럼 두 조회 모두에 대해 하나의 맵 파일을 공유할 수 있음을 의미합니다.가상(5). Postfix( )의 기본 구성은 virtual_alias_domains = $virtual_alias_maps
이러한 혼합 스타일의 지도를 가정합니다.
example.net OK
[email protected] [email protected]
[email protected] [email protected]
이러한 검색에 대한 중요한 규칙은 다음과 같습니다.
virtual_alias_maps
재귀적으로 검색됩니다. 키와 동일한 주소를 반환하는 경우 해당 주소를 사용하세요.- 마지막으로 반환된 다시 작성된 주소가
virtual_alias_maps
여전히 에 있는 경우virtual_alias_domains
검색은 실패한 것으로 간주됩니다(User unknown in virtual alias table
). 이것은 명확하게 문서화되지 않은 것 같습니다.이 스레드.
따라서 첫 번째 정규식 map() 및 구성은 지도가 모든 항목과 일치하므로 문제가 있어 여전히 존재하고 반환됩니다./^.+$/ [email protected]
[email protected]
virtual_alias_domains
virtual_alias_domains
map()에 아무것도 지정하지 않거나 단일 도메인 문자열과 일치하지 않는 다른 정규식을 사용하면 이를 방지할 수 있습니다 ./^.+@.+$/ [email protected]
하지만 제 생각에는 둘 다 올바른 구성은 아니지만 직관적이지 않은 해결 방법입니다. 귀하의 목적에 더 나은 솔루션이 있을 것이라고 생각합니다.