sendmail을 사용하여 하나의 sendmail 서버로 전달하고 해당 서버에서 메일 보내기

sendmail을 사용하여 하나의 sendmail 서버로 전달하고 해당 서버에서 메일 보내기

저는 Centos 6.2 배포판과 함께 Linux를 사용하고 있습니다. 이 배포판을 실행하는 VM이 ​​2개 있습니다.

한 VM의 이름은 'proxy'이고 다른 VM의 이름은 'auth'입니다.

두 가지 모두에 sendmail을 설치하십시오. 프록시가 인터넷에 연결되어 있지 않습니다.

내 의도는 프록시의 PHP 페이지를 사용하여 프록시의 sendmail이 메일을 인증으로 전달하도록 한 다음 인증을 통해 이메일을 보내도록 하는 것입니다. 'auth'에는 인터넷이 연결되어 있습니다.

어떤 피드백이라도 도움이 될 것이며 크게 감사하겠습니다.

안녕하세요, 감사합니다. 나는 당신이 제안한대로했습니다. 그러나 내 프록시는 인증으로 직접 중계하는 대신 여전히 root@localhost를 사용하여 중계하고 있습니다.

Jan 14 08:18:57 test1 sendmail[10212]: s0EGEvce010212: from=proxy, size=235, class=0,     nrcpts=1, msgid=<201401141614.s0EGEvce010212@test1>, relay=root@localhost Jan 14 08:18:57 test1 sendmail[10212]: s0EGEvce010212: [email protected], delay=00:04:00, mailer=esmtp, pri=30235, dsn=4.4.3, stat=queued 

인터넷 연결을 위한 기본 게이트웨이를 다시 추가하면 문제가 사라집니다. 하지만 그렇게 하면 인증을 거치지 않고 메일이 발송됩니다.

그러나 프록시와 인증 간에 메일을 보낼 때 차이점이 있는 시나리오가 나타납니다. 이 경우 사용되는 릴레이는 auth.localdomain입니다.

현재 상태로는 프록시가 인터넷 경로 없이 인증을 ping할 수 있으며 그 반대의 경우도 마찬가지입니다.

내 sendmail.mc 파일에 다음이 있습니다.

define(`SMART_HOST', `auth.localdomain')dnl

해결책:

Sendmail: 메일이 여전히 root@localhost로 릴레이되고 있습니다.

답변1

sendmail 전문 용어에서는 "auth"를 스마트호스트로 사용하려면 "프록시"를 구성해야 합니다.

# /etc/mail/sendmail.mc
<snip>
(`SMART_HOST',`auth.mydomain.com`)

그리고 매크로에서 sendmail.cf를 다시 만듭니다.

그런 다음 "프록시"의 메시지를 릴레이하도록 "인증"을 구성합니다.

# /etc/mail/access
#
# By default we allow relaying from localhost...
Connect:localhost.localdomain           RELAY
Connect:localhost                       RELAY
Connect:127.0.0.1                       RELAY
Connect:proxy                           RELAY

그리고 access.db를 다시 생성하세요.makemap hash access.db < access

관련 정보