Postfix를 사용하여 다른 smtp 서버로 프록시 메일


11

받는 사람 주소에 따라 어떻게 다른 SMTP 서버로 메일을 전달 (또는 프록시) 할 수 있습니까?

포트 25에서 수신 대기하는 SMTP (Postfix) 서버가있는 하나의 시스템이 있습니다. 수신 메일 및 처리 할 postfix를 처리 하기 위해 Lamson ( http://lamsonproject.org/ )을 사용 하고 싶습니다.

내 생각은 Lamson이 다른 포트에서 청취하도록 설정하는 것입니다. localhost : 10025라고합시다. 그런 다음 포트 25에서 수신 대기하여 모든 메일을 수신하도록 postfix를 설정하십시오.

10025에서 특정 메일을 Lamson에 프록시하고 다른 모든 메일 자체를 처리하도록 Postfix를 구성하는 방법은 무엇입니까?

답변:


18

Postfix는 구성이 매우 유연하고 복잡하므로이를 달성하는 다양한 방법이 있습니다. 가장 간단한 방법은 아마도 transport(5)테이블 을 사용하는 것입니다 .

먼저 postfix에서 전송 테이블을 사용하도록 설정하십시오.

/etc/postfix/main.cf:
    transport_maps = hash:/etc/postfix/transport

또한 Postfix가 Lamson이 처리 할 주소의 메일을 수락하는지 확인해야합니다. permit_auth_destination유효한 수신자 주소를 결정하기 위해 Postfix가 적용 할 규칙을 살펴보십시오 . 다음 예에서 "example.com"이 Postfix에 알려지지 않은 도메인이라고 가정하면 릴레이 도메인으로 간단히 추가하는 것이 가장 쉽습니다.

/etc/postfix/main.cf:
    relay_domains = example.com

그런 다음 적절한 테이블을 작성하십시오. 예를 들어 도메인 "example.com"에 대한 모든 메일과 "user@mydomain.org"에 대한 메일을 포트 10025에서 수신 대기하는 로컬 Lamson으로 리디렉션하려면 다음을 수행하십시오.

/etc/postfix/transport:
    example.com          smtp:127.0.0.1:10025
    user@mydomain.org    smtp:127.0.0.1:10025

그 후에 (그리고 전송 테이블 파일을 업데이트 할 때마다 한 번) 다음을 실행하는 것을 잊지 마십시오.

$ postmap /etc/postfix/transport

이것은 당신을 갈 것입니다. transport(5)이 강력한 기능을 사용하는 방법에 대한 더 많은 아이디어를 제공 하는 매뉴얼 페이지 를 읽으십시오 .


안녕하세요, 팁 주셔서 감사합니다. 안내에 따라 메일을 전달하는 데 여전히 문제가 있습니다. NOQUEUE가 표시됩니다. 거부 : {my-mail-relay}의 RCPT 수신자 주소가 거부 됨 : 로컬 수신자 테이블에 사용자를 알 수 없습니다. 어떤 아이디어?
Mattias

예, Postfix가 example.com으로 릴레이되는 메일을 수락해야합니다 (Postfix는 이제 Lamson의 릴레이 역할을하므로). Postfix가 주로 다른 도메인을 제공하는 경우 가장 쉬운 방법은 "Lamson 도메인"을에 추가하는 것 relay_domains입니다. 이것을 통합하기 위해 업데이트했습니다.

1
감사합니다, 당신의 단계를 수행 한 후에도 여전히 localhost를 유효한 호스트로 인식하기 위해 postfix를 얻는 데 문제가있었습니다. postconf -e 'smtp_host_lookup = dns, native'명령을 실행했는데 문제가 해결되었습니다. postfix는 이제 원하는 메일을 Lamson으로 전달합니다.
Mattias

1
작동한다는 것을 알게되어 반갑습니다. 대신 변화의 smtp_host_lookup, 당신은 또한 사용할 수 있습니다 127.0.0.1대신 localhost. 그 개선을 수용하기 위해 답변을 업데이트했습니다.
백작
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.