특정 서버를 통해 릴레이하도록 sendmail을 구성하는 방법

특정 서버를 통해 릴레이하도록 sendmail을 구성하는 방법

케이블 모뎀(bresnan communications) 뒤에 작은 홈 서버 설정이 있습니다. 이 상자에서 알림 등을 위해 이메일을 보낼 수 있도록(수신 아님) 할 수 있기를 원합니다.

내가 이미 한 일:

  • sendmail을 설치하고 구성했습니다.
  • mail.bresnan.net내 지시문으로 추가했습니다 SMART_HOST.

내가 생각하는 문제는

이메일을 보내려고 하면 메일 로그에 다음과 같은 내용이 표시됩니다.

Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530: from=aburns, 
  size=140, class=0, nrcpts=1, 
  msgid=<[email protected]>, 
  relay=aburns@localhost
Dec 22 10:24:17 batcave sm-mta[1531]: oBMHOHWZ001531: from=<[email protected]>, 
  size=397, class=0, nrcpts=1,
  msgid=<[email protected]>,
  proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530:
  to=<[email protected]>, ctladdr=aburns (1000/1000),
  delay=00:00:00, xdelay=00:00:00, mailer=relay,
  pri=30140, relay=[127.0.0.1] [127.0.0.1],
  dsn=2.0.0, stat=Sent (oBMHOHWZ001531 Message accepted for delivery)
Dec 22 10:24:18 batcave sm-mta[1517]: oBMH9mVv001357:
  to=<[email protected]>, ctladdr=<[email protected]>
  (1000/1000), delay=00:14:30, xdelay=00:00:42, mailer=relay,
  pri=300339, relay=pmx0.bresnan.net. [69.145.248.1],
  dsn=4.0.0, stat=Deferred: Connection timed out with pmx0.bresnan.net.

내 sendmail 서버에서 메시지 전달이 허용되는 위치와 bresnan의 서버로 전달을 시도하고 시간 초과되는 위치를 확인할 수 있습니다.

이것이 내 질문이 있는 곳이다. 기민한 독자들은 그것이 pmx0.bresnan.net내가 SMART_HOST설정한 지시사항이 아니라는 것을 알게 될 것입니다. 이것은 MXbresnan.com/net 도메인의 (외부?) 서버입니다. 분명히 bresnan은 자체 네트워크 내에서 이 서버에 액세스할 수 없고 대신 서버 mail.bresnan.net(내가 연결할 수 있음)를 사용해야 하도록 네트워크를 구성했습니다. 문제는 sendmail에게 이것을 사용하도록 지시하는 방법을 모른다는 것입니다.섬기는 사람그리고는 아니다도메인.

내가 시도한 것

  • pmx0 서버가 메일 IP 주소를 가리키도록 호스트 항목을 설정합니다. 이것은 작동하지 않습니다. sendmail이 분명히 IP를 반환하는 서버를 찾기 위해 MX 쿼리를 수행하고 있으므로 '정상적인' DNS 확인을 수행할 필요가 없으므로 호스트 파일이 절대 관여하지 않기 때문에 의미가 있습니다.

수정 사항(모든 발신 메일에 대해):

다시 말하지만, 제가 이것을 배우는 데 도움을 준 props는 webmin(아래 참고 참조)으로 이동합니다. sendmail이 MX 조회를 수행하지 않도록 지시하는 대괄호를 사용하여 스마트호스트를 입력하면 다음과 같이 됩니다. define('SMART_HOST','[69.145.248.18]')(따옴표->백틱 수정) 실제로는 메일러 테이블 없이 작동합니다.

수정 사항(특정 도메인용):

아래에서 지적했듯이 a 설정이 mailertable필요합니다. 그러나, 서문에서 지적한 바와 같이매뉴얼 페이지, 이 기능은 파일에서도 활성화되어야 합니다 sendmail.mc.

또한 메일러 경로는 sendmail이 모든 작업에 지정된 서버를 사용하도록 강제하지 않으며 수신자의 주소를 기반으로 한다는 점에 유의하십시오. 몇 개의 도메인(Gmail, Google 호스팅 및 내 작업)에만 보내면 되므로 실제로는 괜찮습니다.

요약:

  • FEATURE('mailertable')파일 에 추가하세요 sendmail.mc. (첫 번째 인용문은 백틱이어야 합니다.
  • 파일을 생성합니다 /etc/mail/mailertable(참조:매뉴얼 페이지)
  • 맵파일을 생성합니다:sudo makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
  • 구성을 다시 빌드하세요.make -C /etc/mail
  • Sendmail을 다시 시작합니다:service sendmail restart

메모:고도로이러한 파일을 편집/재구축하려면 WebMin을 사용하는 것이 좋습니다. 그것이 없었다면 나는 메일러 테이블 파일이 왜 무시되었는지 알아내려고 미친 듯이 노력했을 것입니다.

답변1

sendmail 파일에 짧은 항목을 추가하여 MX 조회를 피할 수 있습니다 /etc/mail/mailertable.

파일 내용은 아마도 다음과 같은 한 줄로 되어 있을 것입니다:

bresnan.net       esmtp:[69.145.248.18]

파일을 저장하고 sendmail을 다시 시작하십시오(또는 수동으로 수행해야 하는 경우 sendmail.cf를 다시 작성하십시오).

관련 정보