IPv4 대신 IPv6에서 메일 발송을 중지하는 방법


11

오늘 Gmail은 내 서버에서받은 모든 메시지를 스팸 폴더로 보냅니다. 메시지 헤더를 확인하고 다음을 발견했습니다.

Authentication-Results: mx.google.com;
       spf=neutral (google.com: 2001:4ba0:cafe:........ is neither permitted nor denied by best guess record for domain of root@myserver.com) smtp.mail=root@myserver.com

따라서 Sendmail이 IPv4의 IP6 주소에서 메일을 보내고 있으며 IPv6에 대한 SPF 및 PTR 레코드가없는 것으로 보입니다. Sendmail이 IPv4에서 메일을 보내도록하려면 어떻게합니까?

감사.


4
v6 연결이 있으므로 v6 호환 메일러에 대한 역방향 조회 및 MX 레코드를 추가 할 수 있으면 더 좋습니다. 그러나 그것은 당신이 요구하는 것이 아닙니다.
sysadmin1138

답변:


10

IPv6을 비활성화하지 마십시오. 더 이상 선택 사항이 아니므로 일부 사람들과는 의사 소통을 할 수 없습니다.

대신 SPF 레코드가 IPv6 주소에서 시작된 메일을 전달하도록 수정하십시오.


VPS 공급자가 IPv6에 대한 SPF 레코드를 설정하지 않으려면 어떻게해야합니까? :(
brodul

2
@brodul VPS 제공 업체는 DNS 레코드와 어떤 관련이 있습니까?
Michael Hampton

SPF 레코드를 수정해도 문제가 해결되지 않습니다. 메일을 GMail로 전달하기 때문에 전달 서버가 SPF 확인을 통과하지 못합니다.
James Roper

3
Gmail은 이제 IPv6 발신자에게 역순으로 작동합니다. 작업 역 주소를 갖는 것은 확실히 서버 / 네트워크 공급자에 당신의 손에서까지.
블라디미르 판 텔레 예프

확실해? iI'm 잘못되지 Gmail은 단지 현재 유효한 SPF 레코드를 필요로하는 경우 (당신은 "스팸 메일"시간이 몇 클릭하여 자신의 AI를 훈련해야한다)
autra

11

sendmail.mc에서 다음을 추가하십시오.

CLIENT_OPTIONS (`Family = inet ') dnl

그런 다음 sendmail.cf를 다시 빌드하고 sendmail을 다시 시작하십시오. 데비안에서는> sendmailconfig를 실행하면됩니다. CentOS에서는 / etc / mail / make를 실행 한 다음 service sendmail restart를 실행합니다. 다른 시스템에는 다른 방법이 있습니다.

이것을 게시 해 주셔서 감사합니다. 그러나 나는 이것을 시도했지만 여전히 나를 위해 작동하지 않았다. 참고로, 우리는 IPv6에 대한 역방향 DNS 항목이 없기 때문에 Google 메일 서버에서 거부되었습니다. 숫자 역방향 DNS 항목은 IP 주소 블록을 소유 한 사람에게 가야하며 이는 VPS이므로 DNS 구성이 아니라 VPS의 구성과 관련이 있습니다.

어쨌든, 내가 볼 수있는 한 IPv6를 클라이언트로 사용하여 sendmail을 구체적으로 끌 수있는 방법은 없습니다. 약간 까다로운 해결책은 IPv4 주소의 IPv6 호환성 형식을 사용하도록 IPv6 옵션을 지정하는 것이 었습니다.

예를 들어, IPv4 주소가 1.2.3.4 인 경우 다음을 지정하십시오.

CLIENT_OPTIONS (`패밀리 = inet6, Addr = :: ffff : 1.2.3.4 ') dnl

나를 위해 매력을 발휘했으며, 내가 알 수있는 한, 이것은 어디에도 문서화되지 않았습니다.


답변 주셔서 감사합니다! IPv6 PTR에 액세스 할 수 없으며 sendmail이 Gmail에 사용하기에 완고한 서버에서 트릭을 수행했습니다.
Luxian

4

당신의 sendmail.mc추가 :

CLIENT_OPTIONS(`Family=inet')dnl

그런 다음 sendmail.cfsendmail을 다시 빌드 하고 다시 시작하십시오. 데비안에서는을 실행하면됩니다 sendmailconfig. CentOS에서는 /etc/mail/make다음에 실행 됩니다 service sendmail restart. 다른 시스템에는 다른 방법이 있습니다.


0

방금 나에게 (현재 2018 년), filter-aaaa-on-v4를 지정하는 것이 그렇습니다. 내 로컬 바인드 named.conf에서 https://kb.isc.org/docs/aa-00576 (내가 언급 한 filter-aaaa-on-v6 지시문을 제외하고는 내 마음에 없음). 아마도 -4라는 이름도 효과가 있었을 것입니다. 센드 메일과이를 사용하여 centos7 [.5.1804]에 바인딩합니다.

여기에 대한 답변을 포함하여 다른 모든 시도를 통해 gmail은 "이 메시지는 IPv6 전송 지침을 충족하지 않습니다"라는 내 메일을 반송했습니다. 실제로 ipv6 주소에 대한 역전이 없기 때문에 (isp는 어렵습니다).

하지 작업을했던 다른 가지 (정의 confBIND_OPTS',에 따라, submit.mc 및 sendmail.mc에 (ResolverOptions 일명) -use_inet6 ')를 https://lists.debian.org/debian-user/2004/09/msg01410.html . 왜 그런지 모르겠습니다.

sendmail이 getaddrinfo가 아닌 gethostbyname / addr을 사용하기 때문에 /etc/gai.conf 변경 ( https://centosfaq.org/centos/etcgaiconf-fails-to-prefer-ipv4-over-ipv6-for-nfs/에 따라 ) gai.conf는 후자에만 영향을줍니다.

오, 다른 해결책이 하나 있습니다. 소스에서 sendmail을 컴파일하고 해당 레벨에서 v6을 비활성화하십시오. 불행히도 동등한 런타임 지시문이없는 것 같습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.