You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

接收邮件时遭遇“Connection is closed by foreign host”错误的原因排查及解决方法咨询

接收邮件时遭遇“Connection is closed by foreign host”错误的原因排查及解决方法咨询

您好,我看了您提供的telnet测试SMTP连接的日志,这个问题在SMTP交互场景里挺常见的,咱们一步步来分析可能的原因和对应的解决办法:

先把您的测试日志贴出来方便参考:

telnet 192.168.52.133 587
Trying 192.168.52.133...
Connected to 192.168.52.133.
Escape character is '^]'
220 WIN-LJJOOG2IF45 Microsoft ESMTP MAIL Service, Version: 10.0.20348.1 ready at Tue, 26 Nov 2024 06:49:17 -0800
ehlo
250-WIN-LJJOOG2IF45 Hello [192.168.52.128]
250-TURN
250-SIZE 2097152
250-ETRN
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-8bitmime
250-BINARYMIME
250-CHUNKING
250-VRFY
250 OK
mail from:[redacted1]@gmail.com
250 2.1.0 [redacted1]@gmail.com....Sender rcpt to: [redacted2]@gmail.com
Connection closed by foreign host.

从日志能看到,您已经成功建立了SMTP连接,EHLO握手也正常完成,但在发送rcpt to指令时直接被对方服务器断开了连接,常见的原因主要有这几个:

  • 缺少身份认证:很多SMTP服务器(尤其是587这个提交端口)要求在发送RCPT命令前必须先进行AUTH身份验证。您当前的测试流程里没有做认证步骤,服务器可能因为这个直接拒绝并断开连接。建议您在EHLO之后添加AUTH LOGIN(或者对应服务器支持的认证方式),输入用户名和密码后再尝试发送MAIL FROM和RCPT TO指令。
  • 收件人地址问题:收件人邮箱[redacted2]@gmail.com可能不存在,或者被目标服务器的拒收规则拦截(比如对方把这个邮箱设置了拒收,或者服务器判定该地址无效)。您可以先确认收件人邮箱的有效性,或者换一个已知有效的收件人测试。
  • 发送方IP/域名被拦截:您的客户端IP(192.168.52.128)可能被目标服务器的防火墙、反垃圾邮件系统标记为可疑IP,导致服务器直接断开连接。您可以检查目标服务器的安全策略,或者尝试从其他IP进行测试。
  • SMTP服务器配置限制:目标Microsoft ESMTP服务器可能有发送限制,比如单次连接的收件人数量、邮件大小限制,或者对未认证连接的收件人范围做了限制(比如只允许发送到本地域名邮箱,而您发送的是gmail.com的外部邮箱)。您可以查看该服务器的SMTP配置文档,确认是否有这类限制。

给您几个具体的测试建议:

  1. 补充身份认证步骤后再测试,示例流程如下:
    ehlo yourdomain.com
    AUTH LOGIN
    # 输入base64编码的用户名
    # 输入base64编码的密码
    mail from:[redacted1]@gmail.com
    rcpt to:[redacted2]@gmail.com
    
  2. 更换一个本地域名的收件人邮箱(如果目标服务器是内部服务器)进行测试,看是否能正常完成交互。
  3. 查看目标SMTP服务器的系统日志,里面应该会记录断开连接的具体原因,这是最直接的排查方式。

备注:内容来源于stack exchange,提问作者Eniya Sri

火山引擎 最新活动