{
  "id": "communication/smtp-connection-timeout-port-587",
  "signature": "SMTPConnectionTimeout: timed out connecting to smtp.example.com on port 587",
  "signature_zh": "SMTP 连接超时：连接到 smtp.example.com 端口 587 超时",
  "regex": "timed out connecting|SMTPConnectionTimeout|Connection timed out.*port 587",
  "domain": "communication",
  "category": "network_error",
  "subcategory": null,
  "root_cause": "Firewall or network policy blocks outbound connections to port 587 (STARTTLS) while port 25 or 465 may be open, or the SMTP server is unreachable due to DNS or routing issues.",
  "root_cause_type": "generic",
  "root_cause_zh": "防火墙或网络策略阻止了到端口 587（STARTTLS）的出站连接，而端口 25 或 465 可能开放，或者 SMTP 服务器因 DNS 或路由问题无法访问。",
  "versions": [
    {
      "version": "Postfix 3.7.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Exim 4.96",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "sendmail 8.17.1",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "",
      "why_fails": "Port 587 is blocked by firewall; longer timeout doesn't bypass firewall",
      "fail_rate": 0.9,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "Telnet also fails if port is blocked; doesn't solve the underlying issue",
      "fail_rate": 0.95,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "Port 25 may be blocked by ISPs or flagged as spam; also insecure",
      "fail_rate": 0.7,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Switch to port 465 with implicit SSL/TLS: import smtplib; server = smtplib.SMTP_SSL('smtp.example.com', 465); server.login(user, password); server.sendmail(from_addr, to_addrs, msg)",
      "success_rate": 0.9,
      "how": "Switch to port 465 with implicit SSL/TLS: import smtplib; server = smtplib.SMTP_SSL('smtp.example.com', 465); server.login(user, password); server.sendmail(from_addr, to_addrs, msg)",
      "condition": "",
      "sources": []
    },
    {
      "action": "Contact network administrator to open outbound port 587 in firewall rules",
      "success_rate": 0.8,
      "how": "Contact network administrator to open outbound port 587 in firewall rules",
      "condition": "",
      "sources": []
    },
    {
      "action": "Use a relay server on a different port (e.g., 2525) if provider supports it",
      "success_rate": 0.75,
      "how": "Use a relay server on a different port (e.g., 2525) if provider supports it",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "Switch to port 465 with implicit SSL/TLS: import smtplib; server = smtplib.SMTP_SSL('smtp.example.com', 465); server.login(user, password); server.sendmail(from_addr, to_addrs, msg)",
    "Contact network administrator to open outbound port 587 in firewall rules",
    "Use a relay server on a different port (e.g., 2525) if provider supports it"
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://www.rfc-editor.org/rfc/rfc3207",
  "official_doc_section": null,
  "error_code": "ETIMEDOUT",
  "verification_tier": "ai_generated",
  "confidence": 0.88,
  "fix_success_rate": 0.8,
  "resolvable": "true",
  "first_seen": "2024-01-10",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}