postfix-모든 이메일을 한 명의 사용자로 리디렉션하는 방법 (예 : *@example.com → user@example.com)


27

이메일에 postfix를 사용하고 있습니다. 내가 넣어 user@example.com에 root@example.com를 리디렉션 할 수 있습니다 예를 들어, 등 / 별칭과 newaliases를 특정 이메일을 리디렉션 명령 / I 사용할 수있는 알고 root: user내의 / etc / aliases에 다음 실행 newaliases. 그러나 *: userexample.com에 대한 모든 이메일이 user@example.com으로 전송되도록 의 등가를 수행하고 싶습니다 .

어떻게해야합니까?

답변:


19

luser_relay = user@example.com당신 main.cf이 원하는 것입니다.

사용자 확인을 비활성화하고 모든 메일을 수락하려면 local_recipient_maps =옵션 을 추가해야합니다 . 선적 서류 비치


1
main.cf에 추가하고 postfix를 다시 시작했습니다. /var/log/main.info에 다음과 같은 오류가 발생했습니다. <pre> 550 5.1.1 <myrandom@example.org> :받는 사람 주소가 거부 됨 : 로컬받는 사람 테이블에서 사용자를 알 수 없습니다. from = <me@gmail.com> to = <myrandom@example.org> </ pre>
Rory

따라서 example.org가 로컬 수신자 도메인 목록에 없거나 다른 항목이 잘못 구성되었습니다.
womble

7
나는 그것을 작동시켰다. 언급 한 luser_relay 옵션과 마찬가지로 "local_recipient_maps ="옵션도 추가해야합니다. 이 postfix 문서 페이지는 다음을 설명합니다 : postfix.org/postconf.5.html#luser_relay
Rory

이 방법은받는 사람 이메일 주소를 유지합니까? (가상 맵에서 다시 작성하고 원래 To : 주소가 손실됩니다.)
user14645

1
@Sverre 질문은 접선 관련 질문에 대한 7 세 답변에 대한 의견이 아니라 질문에 대한 것입니다.
womble

17

당신이 찾고있는 것은 가상 별칭 테이블이며 다음을 사용하여 수행 할 수 있습니다 ...

먼저 / etc / postfix / virtual 파일 을 편집하거나 존재하지 않는 경우 작성해야 합니다.

example.com   whatever
@example.com  user@example.com

이것을 저장 한 후 postmap /etc/postfix/virtual색인화 된 /etc/postfix/virtual.db 를 생성하기 위해 실행해야합니다 . Postfix가 읽습니다.

그런 다음 /etc/postfix/main.cf 를 편집 하고 다음 줄의 주석 처리를 제거해야합니다.

virtual_alias_maps = hash:/etc/postfix/virtual

이것은 실제로 postfix에 가상 별칭 테이블에 대해 알리고 사용합니다.

luser_relay다른 사람들이 언급했듯이 옵션 을 사용할 때의 문제점 은 로컬 배달 에이전트가 알 수없는 주소에 대한 최후의 사용자로 취급된다는 것입니다. postfix가 한 도메인의 메일 만 처리하는 경우이를 사용할 수 있지만 다른 구성 오류를 숨길 수 있으며 둘 이상의 도메인을 처리하는 경우 예기치 않은 결과가 발생할 수 있습니다.

필자가 언급해야 할 한 가지주의 사항은 이러한 특성의 와일드 카드 별칭을 만들면 존재하지 않는 주소에 대한 메시지를 수락하기 위해 메일 시스템을 열고 존재하지 않는 메일에 대해 신속하게 스팸으로 채워질 위험이 있다는 것입니다. 사서함.


8

실제로는 매우 간단합니다. main.cf파일 에 다음과 같은 것을 넣으면 됩니다.

virtual_alias_maps = regexp:/etc/postfix/virtual_alias

regexp부분은 트릭을 수행합니다. 또한 /etc/postfix/virtual_alias다음과 같이 입력하십시오.

/^test/ you@yourdomain.com

이 예에서는 'test'로 시작하는 대상이있는 모든 메일을 받아야합니다. / etc / postfix / virtual_alias를 postmap하고 postfix를 다시로드하는 것을 잊지 마십시오.


6

나에게 가장 쉬운 위의 답변 / 의견을 결합하려면 (하나의 기본 도메인이 있음) :
다음을 다음에 추가하십시오 /etc/postfix/main.cf.

luser_relay = user@domain.com (or local system user)
local_recipient_maps =

( local_recipient_maps =값이 설정되지 않았습니다)

로컬 사용자 리눅스 계정을 사용하고 / etc / aliases에 동일한 사용자를 추가하여 사용자가 모든 메일을 루트, 포스트 마스터 등으로 가져옵니다.

또한 동일한 주소를 귀하의 주소와 결합하여 virtual_alias_maps동일한 기본 계정에서 가상 도메인 캐치를 모두 가리킬 수 있습니다.

자세한 내용은 luser_relay 를 참조하십시오 .


3

mydomain에 포괄 주소를 사용하려면 /etc/aliases다음과 같이 정규식과 결합하여 사용할 수 있습니다 .

/etc/postfix/main.cf추가
alias_maps = hash:/etc/aliases, regexp:/etc/postfix/catch-all-local.regexp

/etc/postfix/catch-all-local.regexp추가
!/^owner-/ your-catch-all-user

이것은 트릭을해야합니다. 그것은 나를 위해 일했고 virtual_alias_maps를 병렬로 설정하여 작동합니다.


0

Postfix에는 알려지지 않은 정적 조회 테이블 유형이 있으며,이 목적을 위해 정확하게 사용될 수 있습니다.

alias_database = static:user@example.com
alias_maps = static:user@example.com

user@example.com이 시스템에 대한 로컬이 아닌 경우에는 아마로 끝나는 라인을 대체하여 모든 반송 메시지를 폐기 할 것 bouncediscardmaster.cf메일 루프를 방지 할 수 있습니다.


-4

나는 죽이는 것을 싫어하지만 문제는 당신이 Postfix를 사용하고 있다는 것입니다. Postfix는 정확하게이 연습을 매우 어렵게 만듭니다. 나는 알고있다 : 나는 몇 년 전에 그것을해야했다. 그리고 그것을 올바르게하는 데 며칠이 걸렸다. luser옵션은 바로 하나이지만, 너무, 제대로 다른 것이있다. (그리고 옵션의 이름조차도 Postfix의 저자가 이것을 지원하고 싶지 않다는 것을 보여줍니다.)

택배로 전환하는 것이 좋습니다. Courier는 기존 별명 시스템을 확장하는 방식으로 인해이 "캐치 올 (catch-all)"방법을 훨씬 더 합리적인 방식으로 지원합니다.


1
Postfix는 전혀 어렵지 않습니다. 가상 별칭은 Postfix에서 포괄을 수행하는 표준 방법이며 매우 쉽습니다. 즉, 자신의 개인 도메인을위한 장난감 메일 서버 이외의 모든 것에서 catchalls는 매우 나쁜 생각입니다.
Rob Chanter
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.