문제

exim4를 사용하여 스톡 데비안 에칭 시스템이 있습니다. 도메인은 대부분 로컬이지만 일부는 원격이 있습니다. 원격 메일의 전달을 처리하려면 Debian 구성 파일을 사용합니다.

  /etc/exim4/hubbed_hosts

이 파일에는 도메인 이름과 원격 MX 머신을 제공합니다. 예를 들어:

  example.org:  mx.example.com
  example.com:  mx2.example.com

exim4 구성 파일을 살펴보면 다음과 같이 사용됩니다.

hubbed_hosts:
  debug_print = "R: hubbed_hosts for $domain"
  driver = manualroute
  domains = "${if exists{CONFDIR/hubbed_hosts}\
                   {partial-lsearch;CONFDIR/hubbed_hosts}\
              fail}"
  route_data = ${lookup{$domain}partial-lsearch{CONFDIR/hubbed_hosts}}
  transport = remote_smtp

내가 가진 문제는 그 것입니다 약간 내가 사용하는 호스트 중 메일을 비표준 포트로 배송해야합니다. 불행히도 Debian Hubbed_hosts 파일은 포트를 포함하도록 변경하려고하면 작동하지 않습니다.

example.org: mx1.example.org:2525
example.com: 1.2.3.4.2525

포트를 동적으로 지정할 수 있습니까?

도움이 되었습니까?

해결책 2

나는 좀 더 역동적 인 것을 기대하고 있었고이 솔루션은 다음과 같습니다.

 port = ${if exists{/etc/exim4/ports.list}\
              {${lookup{$domain}lsearch{/etc/exim4/ports.list}\
              {$value}{25}}}{25}}

그런 다음 간단한 파일에는 도메인 별 포트 목록이있을 수 있습니다.

   example.org: 2525
   example.com: 26

다른 팁

이는 EXIM4 구성을 변경하지 않고 실제로 기본적으로 지원됩니다.

hubbed_hosts에서는 콜론이있는 호스트를 분리하고 이중 콜론이있는 포트 번호를 지정합니다. 전:

domain1: server1:server2::port:server3
domain2: server1::port
domain3: server1:server2

자세한 정보는 확인하십시오 http://www.exim.org/exim-html-current/doc/html/spec_html/ch20.html#secid122

아마도 $ {extract} 연산자를 사용하여 원래 질문의 예와 같이 포트 번호와 호스트 이름을 결합 할 수 있습니다.

(테스트되지 않은)와 같은 것 :

route_data = ${extract{1}{:}{${lookup{$domain}partial-lsearch{CONFDIR/hubbed_hosts}}}}

포트를 지정하는 새로운 전송을 만드십시오

remote_hub_2525:
driver = smtp
port = 2525

그런 다음 비표준 배달이 필요한 도메인에 대한 라우터를 만듭니다.

non_standard_hub:
driver = manualroute
domains = example.org : example.com
transport = remote_hub_2525
no_more
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top