이 질문을 다른 포럼에 게시했지만 주제에서 벗어난 것으로 간주되었습니다. 이번에는 제대로 된 포럼이 열렸으면 좋겠습니다.
동일한 내부 네트워크에 10.0.50.101(Linux postfix)과 .103(Windows iMail)이라는 두 개의 이메일 서버가 있습니다. 둘 다 공개 주소를 가지고 있으며 둘 사이에 이메일을 보내지 않는 한 잘 작동합니다. 그들은 항상 실패합니다. 다음은 Pi에 이메일을 보내려고 할 때 Windows 컴퓨터에서 발생한 로그 조각입니다.
09:12 21:54 SMTP-(fecc01bb1000e5e9) R<[email protected]> - 1
09:12 21:54 SMTP-(fecc01bb1000e5e9) [x] doing direct send mysite.com
09:12 21:54 SMTP-(fecc01bb1000e5e9) Trying mysite.com (0)
09:12 21:54 SMTP-(fecc01bb1000e5e9) [x] Connecting socket to service <SMTP> on host <mysite.com> using protocol <tcp>
09:12 21:54 SMTP-(fecc01bb1000e5e9) [x] using source IP for myothersite.com [10.0.50.103]
09:12 21:54 SMTP-(fecc01bb1000e5e9) 220 mail.mysite.com ESMTP Postfix(Raspbian)
09:12 21:54 SMTP-(fecc01bb1000e5e9) Connect mysite.com [10.0.50.101:25](1)
09:12 21:54 SMTP-(fecc01bb1000e5e9) >EHLO myothersite.com
09:12 21:54 SMTP-(fecc01bb1000e5e9) 250-mail.mysite.com
09:12 21:54 SMTP-(fecc01bb1000e5e9) 250-PIPELINING
09:12 21:54 SMTP-(fecc01bb1000e5e9) 250-SIZE 10240000
09:12 21:54 SMTP-(fecc01bb1000e5e9) 250-VRFY
09:12 21:54 SMTP-(fecc01bb1000e5e9) 250-ETRN
09:12 21:54 SMTP-(fecc01bb1000e5e9) 250-STARTTLS
09:12 21:54 SMTP-(fecc01bb1000e5e9) 250-ENHANCEDSTATUSCODES
09:12 21:54 SMTP-(fecc01bb1000e5e9) 250-8BITMIME
09:12 21:54 SMTP-(fecc01bb1000e5e9) 250-DSN
09:12 21:54 SMTP-(fecc01bb1000e5e9) 250 CHUNKING
09:12 21:54 SMTP-(fecc01bb1000e5e9) >MAIL FROM:<[email protected]>SIZE=646
09:12 21:54 SMTP-(fecc01bb1000e5e9) 250 2.1.0 Ok
09:12 21:54 SMTP-(fecc01bb1000e5e9) >RCPT To:<[email protected]>
09:12 21:54 SMTP-(fecc01bb1000e5e9) 550 5.7.23 <[email protected]>:
Recipient address rejected: Message rejected due to: SPF fail - not authorized. Please see http://www.openspf.net/Why?s=mfrom;[email protected];ip=10.0.50.103; r=<UNKNOWN>
09:12 21:54 SMTP-(fecc01bb1000e5e9) Unexpected RCPT TO response from the SMTP server on mysite.com: 550 5.7.23 <[email protected]>: Recipient address rejected: Message rejected due to: SPF fail - not authorized. Please see http://www.openspf.net/Why?s=mfrom;[email protected];ip=10.0.50.103;r=<UNKNOWN>
09:12 21:54 SMTP-(fecc01bb1000e5e9) >QUIT
09:12 21:54 SMTP-(fecc01bb1000e5e9) 221 2.0.0 Bye
09:12 21:54 SMTP-(fecc01bb1000e5e9) [u] closing socket (u)
그리고 거의 같은 시기의 Pi 시스템 로그 파일의 또 다른 조각입니다.
Sep 12 21:54:43 email-2 dovecot: imap([email protected])<19089><GXUG9YboidFDK9hG>: Logged out in=877 out=11039 deleted=0 expunged=0 trashed=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0
Sep 12 21:54:45 email-2 dovecot: imap([email protected])<19091><evQZ94bontFDK9hG>: Logged out in=388 out=2997 deleted=0 expunged=0 trashed=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0
시스템 로그의 항목은 이메일이 전송/처리되었는지 확인하기 위해 서버에서 메일을 받는 내 노트북과 관련이 있을 수 있습니다(?).
또한 오류 메시지의 URL을 따라가려고 하면 해당 사이트를 사용할 수 없다는 메시지가 반환됩니다.
네트워크 내 메일 전송(포트 25)이 작동하지 않는 이유에 대한 아이디어를 제공해 주셔서 미리 감사드립니다.... RDK
답변1
DNS 레코드 설정과 관련된 문제인 것 같습니다. SPF(Sender Policy Framework) 설정을 지정하는 DNS 텍스트 레코드에는 메일 전송 방법과 충돌하는 정보가 포함될 수 있습니다. 로그의 텍스트를 봅니다.
Message rejected due to: SPF fail - not authorized.
DNS SPF 레코드의 내용을 확인하세요.
Windows 서버는 Windows Server에서 메일을 보내는 데 사용되는 도메인에서 메일을 보낼 권한이 있는 서버를 설명하는 SPF 레코드에 지정된 조건을 충족하지 않을 수 있습니다.
프로그램 제안:
- DNS 서버로 이동하여 Windows Server 관련 메일 도메인에 대해 생성된 SPF 레코드를 임시로 삭제합니다. TXT/SPF 레코드가 만료되었으며 캐시되지 않았는지 확인하세요. Postfix 서버는 더 이상 확인을 위해 이를 사용해서는 안 됩니다.
- Windows Server에서 Postfix로 메시지를 보내고 로그를 확인해 보세요.
- 이메일을 성공적으로 보내면 문제의 원인을 찾은 것입니다. Windows 서버가 레코드에 나열된 조건을 충족하도록 SPF 설정을 조사하고 상황에 적합한 텍스트 DNS SPF 레코드를 만듭니다.
예를 들면 다음을 참조하세요.
- https://www.duocircle.com/content/spf-records/spf-record-example
- https://mailtrap.io/blog/spf-records-explained/
DNS 레코드 확인 예시
Windows 서버 메일 도메인의 이름을 mywinmail.net과 같이 지정합니다.
Linux 서버에서 MX 레코드 확인:
dig -t MX mywinmail.net
TXT 레코드 확인:
dig -t TXT mywinmail.net
TXT 레코드가 여러 개인 경우 SPF 유형을 선택해야 합니다.
dig -t TXT mywinmail.net | grep -i spf