我在另一个论坛上发布了这个问题,但它被认为是偏离主题的。我希望这次有一个合适的论坛。
我们在同一内部网络上有两个电子邮件服务器,例如 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) 设置的 DNS 文本记录可能包含与您发送邮件的方式冲突的信息。查看日志中的文本:
Message rejected due to: SPF fail - not authorized.
检查您的 DNS SPF 记录的内容。
您的 Windows 服务器可能不符合 SPF 记录中规定的条件,该记录描述了哪些服务器有权从用于从 Windows Server 发送邮件的域发送邮件。
程序建议:
- 进入DNS服务器,暂时删除为Windows Server相关邮件域创建的SPF记录。验证 TXT/SPF 记录是否已过期且未缓存。 Postfix 服务器不得再使用它进行检查。
- 尝试从 Windows Server 向 Postfix 发送消息并检查日志。
- 如果您成功发送电子邮件,则表明您已找到问题的原因。研究 SPF 设置并创建适合您情况的文本 DNS SPF 记录,以便 Windows 服务器满足记录中列出的条件。
参见例如:
- 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