Postfix를 웹 프록시가 아니라 메일 릴레이로 보내세요
Postfix용 SMTP 릴레이를 선택하고 HTTP CONNECT 경로와 구분하세요.
relayhost = proxy.example.net:3128 은 양쪽이 대화를 시작하기 전까지는 그럴듯해 보인다. Postfix는 SMTP 상대를 기대한다. 3128의 웹 프록시는 HTTP 프록시 요청을 기대한다. 어느 쪽도 기다리던 대화를 얻지 못한다.
네트워크가 승인된 메일 릴레이를 제공한다면 대신 그 SMTP 서비스를 구성하세요. 일반적인 형태는 다음과 같습니다.
relayhost = [smtp-relay.example.net]:587호스트 이름과 포트는 예시입니다. 대괄호는 그 릴레이 이름에 대한 MX 조회를 억제합니다. HTTP CONNECT, TLS, 인증을 추가하지는 않습니다. 릴레이가 요구하는 submission, SASL, TLS 설정은 별도로 구성하세요.
두 계정이 다를 수도 있습니다. 웹 프록시가 받아들인 비밀번호가 자동으로 메일 제출 자격 증명이 되는 것은 아니며, 릴레이는 연결을 수락한 뒤에도 발신자를 거부할 수 있습니다.
승인된 유일한 경로가 터널이라면?
HTTP 프록시는 목적지와 포트를 허용할 때 SMTP를 CONNECT를 통해 운반할 수 있습니다. 그렇다고 임의의 SMTP 클라이언트가 CONNECT를 생성하지는 않습니다. curl 같은 도구에는 명시적인 프록시 터널 옵션이 있고, Postfix의 relayhost를 설정하는 것은 다른 인터페이스입니다.
고정 SSH 포워딩이나 목적에 맞게 만든 로컬 전송 어댑터는 승인된 SMTP 서비스 하나를 로컬 TCP 엔드포인트로 노출할 수 있습니다. 그 설계에서 Postfix는 엔드포인트와 SMTP로 대화하고, 어댑터가 다른 전송을 제공합니다. 범위를 제한하고 의도한 메일 서버의 TLS 정체성을 유지하세요. 연결 주소를 loopback으로 바꾸면 이름 기반 인증서 정책에 영향을 줄 수 있습니다.
네트워크 운영자가 제공하는 서비스가 메일 릴레이일 때 그것을 선호하세요. 큐, 발신자 정책, 배달 오류에 SMTP를 이해하는 자리를 줍니다. 웹 프록시 설정만으로는 그런 메일 기능을 하나도 제공하지 않습니다.