You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cloud Composer 2通过smtp.gmail.com发SMTP邮件报Errno 99错误

问题场景

使用版本为composer-2.0.11-airflow-2.2.3的Cloud Composer 2环境时,尝试通过smtp.gmail.com发送邮件触发异常,已完成两项前置校验:

  • 分别尝试smtp_password_cmd、smtp_password_secret两种密码获取配置,触发的错误完全一致
  • 完成VPC层面网络连通性测试,确认所属VPC到smtp.gmail.com网络可达

运行时抛出错误如下:

Error Msg:

File "/opt/python3.8/lib/python3.8/smtplib.py", line 310, in _get_socket
return socket.create_connection((host, port), timeout,
File "/opt/python3.8/lib/python3.8/socket.py", line 808, in create_connection
raise err
File "/opt/python3.8/lib/python3.8/socket.py", line 796, in create_connection
sock.connect(sa)
OSError: [Errno 99] Cannot assign requested address

相关配置参考:
SMTP配置截图

排查思路与解决方案

OSError: [Errno 99] Cannot assign requested address属于TCP建连阶段错误,和SMTP密码鉴权逻辑无关,可按以下顺序排查:

  • 检查Airflow SMTP配置项
    确认airflow.cfg中未错误配置smtp_source_address、smtp_local_hostname参数。上述参数会强制smtplib建连时绑定不存在的本地IP,直接触发该错误,若存在相关配置直接清空,重启Airflow调度器、Worker组件即可。
  • 校验私网Composer环境的路由与DNS配置
    若使用Private IP模式的Cloud Composer:
    • 检查Cloud DNS规则,确认不存在将smtp.gmail.com错误解析到内网不可达地址的私有转发规则
    • 检查Cloud NAT配置,确认NAT源端口无耗尽情况,可将单VM最小端口配额调整至1024以上验证
  • 校验Gmail SMTP参数匹配性
    标准Gmail SMTP需满足以下配置要求:
    • smtp_starttls设为True
    • smtp_ssl设为False
    • smtp_port设为587
    • 个人Gmail账号需使用应用专用密码鉴权,不可直接使用账号登录密码;Google Workspace账号需提前配置SMTP中继,放行Composer环境出口IP段
  • 执行Pod层面连通性验证
    VPC层面连通性测试无法覆盖工作负载网络策略,需进入Airflow Worker Pod执行实际连接测试:
    # 安装测试工具
    pip install swaks
    # 发起SMTP测试连接
    swaks --to 测试收件箱地址 --server smtp.gmail.com:587 --tls
    
    直接在Pod内复现问题,排查是否存在GKE网络策略、节点防火墙拦截流量的情况。

内容的提问来源于stack exchange,提问作者Divyaansh Bajpai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 11:33:15