답변:
직접적으로 가능하지는 않습니다. http://www.postfix.org/ADDRESS_REWRITING_README.html#luser_relay에 설명되어있는 한 가지 예외가 있습니다 .
또 다른 조잡한 해결책은 SQL (substr + concat)을 사용하여에서 처리 할 수 있습니다 virtual_alias_maps
.
편집 : 아. 마지막 가능성이 하나 있습니다. 정책 위임 메커니즘을 사용하고 REDIRECT localpart@other-domain.example
필요한 위치 DUNNO
에 다시 작성하지 않으려면 반환하십시오.
편집 2 : Squidly에서 영감을 받음 (그러나 그의 솔루션은 작동하지 않습니다!)
virtual_alias_maps = pcre:/etc/postfix/forward_user.pcre, ...
그리고 그 파일에 넣어
/^(.*)@adomain\.example/ $(1)@other-domain.example
(첫 번째 열에서 이스케이프 된 점 (\.)에주의하십시오.) 개인적으로이 버전을 선호합니다.
스토리지 엔드로 MySQL을 사용하는 경우 다음과 같이 캐치를 지정할 수 있다고 생각합니다.
테이블 포워딩
| source | destination |
|==============|===============|
| @example.com | @yoursite.com |
문서를 올바르게 읽으면 user1@example.com이 이제 user1@yoursite.com으로 전달됩니다.
직접 가능하지 않습니까? SQL, 정규식 또는 정책 메커니즘이 없어 매우 간단하고 직접적이라는 것을 알았습니다.
에서 main.cf
:
virtual_alias_domains = alias-destination1.com alias-destination2.com
virtual_alias_maps = hash:/etc/postfix/virtual
에서 /etc/postfix/virtual
:
# I want @true-destination.com to have two incoming aliases
@alias-destination1.com @true-destination.com
@alias-destination2.com @true-destination.com
서버에서 테스트 전자 우편 보내기 :
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.myserver.com ESMTP Postfix
HELO smtp.myserver.com
250 smtp.myserver.com
MAIL FROM:<somebody@gmail.com>
RCPT TO:<anyuser@alias-destination1.com>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Message-ID: <4DC3723F.8010907@myserver.com>
Date: Thu, 05 May 2011 23:59:59 -0400
From: Some Body <somebody@gmail.com>
To: anyuser@alias-destination1.com
Subject: Hello
Just testing.
.
그리고 mail.log의 실제 결과 (포트 10025에서 amavis가 실행 중입니다) :
Apr 6 22:39:43 smtp-a postfix/smtpd[4411]: connect from localhost[127.0.0.1]
Apr 6 22:39:43 smtp-a postfix/smtpd[4411]: 6B47641AF2: client=localhost[127.0.0.1]
Apr 6 22:39:43 smtp-a postfix/cleanup[3706]: 6B47641AF2: message-id=<4DC3723F.8010907@myserver.com>
Apr 6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: from=<somebody@gmail.com>, size=1115, nrcpt=1 (queue active)
Apr 6 22:39:43 smtp-a postfix/smtpd[4411]: disconnect from localhost[127.0.0.1]
Apr 6 22:39:43 smtp-a amavis-incoming[2159]: (02159-13) Passed CLEAN {RelayedInternal}, LOCAL [127.0.0.1]:42426 [127.0.0.1] <somebody@gmail.com> -> <anyuser@alias-destination1.com>, Queue-ID: 5C61F41AE5, Message-ID: <4DC3723F.8010907@myserver.com>, mail_id: hUbzH1PtXlzl, Hits: 2.605, size: 394, queued_as: 6B47641AF2, 1224 ms
Apr 6 22:39:43 smtp-a postfix/lmtp[3687]: 5C61F41AE5: to=<anyuser@alias-destination1.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=25, delays=24/0/0/1.2, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 6B47641AF2)
Apr 6 22:39:43 smtp-a postfix/qmgr[3681]: 5C61F41AE5: removed
강조를 위해 분리 된 키 라인 :
Apr 6 22:39:43 smtp-a postfix/smtp[3684]: 6B47641AF2: to=<anyuser@true-destination.com>, orig_to=<anyuser@alias-destination1.com>, relay=10.0.0.245[10.0.0.245]:2525, delay=0.03, delays=0.01/0/0/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 705AA40459)
Apr 6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: removed
Postfix 설정 방법에 따라 별칭을 사용하여 모든 메일을 전달할 수 있습니다.
편집하다
또한 쉽게 리디렉션을 설정할 수 있습니다.
/etc/postfix/main.cf에 다음을 추가하십시오 :
recipient_bcc_maps = pcre:/etc/postfix/forward_bcc.pcre
그런 다음 /etc/postfix/forward_bcc.pcre에 다음을 추가하십시오.
/^user@olddomain.com/ user@newdomain.com
이것은 약간의 해킹이지만 특정 사용자를 한 도메인에서 다른 도메인으로 전달하는 데 효과적입니다.
또한보고 할 수 있습니다 이 후위 내에서의 자기를 일부 재 작성 작업을 수행하는 방법에 대한 페이지입니다.
@somedomain.com
모든 메일을 특정 주소 로 전달하도록 지정할 수 있지만 동일한 수신자 에게 전달할 수 있는지 알고 싶습니다 .
postfix-pcre
패키지 를 설치해야했습니다 (우분투 12.10)