모든 이메일을 한 도메인으로 버리고 다른 모든 이메일을 릴레이하도록 postfix를 구성하는 방법은 무엇입니까?


9

고객을 스팸하지 않도록 전자 메일을 필터링하려면 개발 / 테스트 환경에서 postfix를 설정해야합니다. 테스트 환경에서는 이메일 주소가 @localhost로 변경되도록 모든 사용자 데이터를 삭제하지만 일부 주소는 나중에 테스트 목적으로 유효한 이메일 주소로 변경 될 수 있습니다. 우리는 배달을 위해 모든 이메일을 타사 제공 업체를 통해 전달하므로, 내가 원하는 것은 postfix를 다음과 같이 설정하는 것입니다.

  1. localhost로 보낸 모든 이메일을 버리십시오
  2. 남아있는 모든 전자 메일을 타사 공급자에게 전달하십시오.

접미사를 처음 접했을 때 이것을 설정하는 가장 쉬운 방법은 무엇입니까?

답변:


8

글쎄, 나는 약간의 검색 및 테스트로 이것을 알아낼 수 있었던 것 같습니다. 내가해야 할 일은 다음과 같습니다.

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

    transport_maps = hash:/etc/postfix/transport
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = static:<relayhost username>:<relayhost password>
    smtp_sasl_security_options = noanonymous
    smtp_tls_security_level = may
    start_tls = yes
    
  • / etc / postfix / transport에서 :

    localhost discard: 
    localhost.localdomain discard:
    * relay:[smtp.relayhost.com]:587
    

릴레이는 분명히 alias_maps 지시문을 무시하므로 별칭이 계속 작동하려면 alias_maps와 alias_database를 모두 주석 처리하고 virtual_alias_maps로 바꿔야했습니다. virutal_alias_map의 형식은 alias_maps와 동일하므로 쉽게 변경할 수 있습니다.

이러한 변경 사항이 적용되면 postfix를 다시 시작하고 "postmap / etc / postfix / transport"를 실행하여 transport.db를 빌드하십시오. 이제 @localhost 또는 @ localhost.localdomain으로 주소 지정된 모든 내용은 삭제되고 다른 모든 항목은 지정된 호스트를 통해 릴레이됩니다.


1
이것은 OP의 질문에 대한 대답은 아니지만 관련 메모에 다음과 같이 자극 상자의 임시 복제본에 모든 보내는 메일을 버리는 방법이 있습니다. 1. 열기 /etc/postfix/main.cf2. 추가 default_transport = discard:Outgoing email disabled on this node3. 다시 시작 Postfix : service postfix restart* a reload충분할 수도있다
deoren
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.