
저는 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
해결책:
답변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