헤더에 원래 IP 주소를 포함하지 않고 이메일 보내기

헤더에 원래 IP 주소를 포함하지 않고 이메일 보내기

요즘 이메일을 받으면 다음과 같은 이메일 헤더를 자주 보게 됩니다.

Received: by FQDN (Postfix, from userid $USERID)

이는 사람들이 VPS에 SSH로 접속하여 그곳에서 이메일을 보낼 수 있다는 것을 의미합니까?또는VPS를 통해 로컬 컴퓨터에서 이메일을 전달하는 방법이 있습니까?

기본적으로 SMTP를 통해 이메일을 보낼 때 IP 주소를 숨기고 VPS 주소를 사용하고 싶을 때에도 동일한 작업을 수행하고 싶습니다.

답변1

VPS를 통해 중계한다고 가정하면 Postfix를 통해 중계되는 이메일에서 일부 헤더를 제거하려는 경우 매우 간단합니다.

  1. /etc/postfix/header_checks다음 이름의 새 파일을 만듭니다.

    /^Received:.*with ESMTPSA/              IGNORE
    
  2. 조회 테이블을 다시 작성합니다.

    # postmap /etc/postfix/header_checks
    
  3. /etc/postfix/main.cf다음 줄을 편집 하고 추가합니다.

    smtp_header_checks = regexp:/etc/postfix/header_checks
    
  4. postfix를 다시 시작하세요(여기에서는 Debian/Ubuntu를 가정):

    # /etc/init.d/postfix restart
    

지금 이메일을 보내면 마지막 이메일을 제외한 모든 내용이 표시됩니다.받았다헤더가 제거되었습니다.

답변2

이를 이해하는 가장 좋은 방법은 직접 이메일을 보내는 다양한 방법을 시도해 보는 것입니다.

나는 UID가 두 가지 요소에 따라 변경된다는 것을 발견했습니다(하지만 그 이상이 있을 수 있음).

  1. 스크립트가 sendmail바이너리를 사용하는 경우 스크립트를 호출하는 사용자의 UID가 반영됩니다.
  2. 스크립트가 SMTP 연결을 직접 사용하는 경우 MTA의 UID를 사용합니다.

답변3

두 가지 생각:

VPS에서 프록시를 설정합니다(SSH 포트 전달, nc 또는 수신 헤더를 추가하지 않는 일종의 SMTP 전달자를 사용).

VPS에서 실행되는 프로그램을 작성하고, 이메일을 받은 다음 로컬로 이메일을 주입합니다(명령줄에서 sendmail/postfix를 사용하거나 localhost 포트 25에 연결).

답변4

이러한 헤더는 메시지가 대상에 도달하면 메시지가 연결되는 서버에 의해 자동으로 추가됩니다. VPS의 서버 이름을 표시하려면 로컬 메일 구성에서 VPS를 "스마트 릴레이"로 사용해야 합니다. sendmail의 경우 이는 /etc/mail/sendmail.cf 파일의 SMART_HOST 정의를 통해 수행됩니다. 그런 다음 VPS가 귀하의 메일만 올바르게 전달할 수 있고 어떤 종류의 블랙리스트에도 없는지 확인해야 합니다(내 경험상 VPS에서는 일반적입니다). 또는 VPS를 메일 호스트로 사용하고 로컬 MTA 없이 IMAP을 통해 간단히 연결할 수 있습니다.

관련 정보