Postfix를 사용하여 다른 도메인의 동일한 주소로 도메인으로 메일을 전달하십시오.


8

도메인의 모든 메일을 수락하도록 (포괄) Postfix를 구성한 다음 수신자가 실제로 존재하는지 여부에 관계없이 다른 도메인의 동일한 수신자에게 해당 이메일을 전달하도록하는 방법이 있습니까?

가상 계정에 대한 MySQL 백업과 함께 Postfix를 사용합니다.

답변:


8

직접적으로 가능하지는 않습니다. 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

(첫 번째 열에서 이스케이프 된 점 (\.)에주의하십시오.) 개인적으로이 버전을 선호합니다.


세 번째 해결책은 나를 위해 일했습니다. 그러나 postfix-pcre패키지 를 설치해야했습니다 (우분투 12.10)
scytale

1

내 시스템에서 pcre 테이블 유형을 사용할 수 없으므로 다음을 수행했습니다.

  • 에서 /etc/postfix/main.cf:

    virtual_alias_maps = regexp:/etc/postfix/virtual
    
  • 에서 /etc/postfix/virtual:

    /^([^@]*)@olddomain/ $(1)@newdomain
    

0

스토리지 엔드로 MySQL을 사용하는 경우 다음과 같이 캐치를 지정할 수 있다고 생각합니다.

테이블 포워딩

| source       | destination   |
|==============|===============|
| @example.com | @yoursite.com |

문서를 올바르게 읽으면 user1@example.com이 이제 user1@yoursite.com으로 전달됩니다.

이 howtoforge 튜토리얼 에서 이것을 찾았습니다.


0

직접 가능하지 않습니까? 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

-1

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모든 메일을 특정 주소 로 전달하도록 지정할 수 있지만 동일한 수신자 에게 전달할 수 있는지 알고 싶습니다 .
Abraham Vegh

/ etc / aliases에서 다음과 같이 설정하십시오. $ username : $username@newdomain.com
오징어

@Squidly 편집 내용은 정규 표현식이 아니며 작동하지 않습니다. OP에는 가상 사용자 만 있기 때문에 / etc / aliases에 대해서는 의견이 없습니다.
mailq

@mailq. 지금 서버에서 라이브입니다 . 여러 리디렉션에 완벽하게 작동합니다. 또한 이들은 단지 가상 사용자라고 말하지 않았습니다. 또한 볼 옵션을 제공했습니다.
오징어
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.