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

使用smtp.gmail.com 587端口发送STARTTLS后应执行什么后续操作?

是否需要重新建立SSL连接

不需要。STARTTLS的设计逻辑就是在当前已建立的普通TCP连接基础上升级为加密TLS通道,全程复用现有连接,无需重新发起新的SSL连接。你直接发送AUTH LOGIN就断连的核心原因是跳过了TLS握手步骤,直接在未完成加密升级的状态下发送了后续SMTP指令。

STARTTLS协商及后续发信完整操作步骤

  • 发送STARTTLS指令后,等待服务器返回响应:220 2.0.0 Ready to start TLS
  • 收到上述响应后,不要直接发送SMTP文本命令,先在当前TCP连接上完成标准TLS协议握手,握手过程为TLS层交互,不属于SMTP文本指令范畴
  • TLS握手成功后,原有TCP连接已经变为加密传输通道,此时需要重新发送一次EHLO <你的客户端标识/域名>指令,因为加密升级后SMTP会话状态会重置,之前的EHLO返回的能力信息已经失效
  • 收到新的250响应后,即可执行正常的认证发信流程:
    1. 发送AUTH LOGIN指令,服务器会返回334 VXNlcm5hbWU6(对应Base64解码后的内容为「Username:」)
    2. 发送Base64编码后的 Gmail 账号地址,服务器返回334 UGFzc3dvcmQ6(对应Base64解码后的内容为「Password:」)
    3. 发送Base64编码后的账号授权码:注意谷歌账号目前不支持直接用账号密码登录SMTP,需要先开启账号两步验证,生成「应用专用密码」作为此处的密码使用
    4. 认证通过后服务器会返回235响应,之后可按标准SMTP流程发送MAIL FROM、RCPT TO、DATA指令完成邮件发送

常见注意事项

  • 所有SMTP指令末尾必须携带\r\n换行符,否则服务器会判定指令不完整,主动断开连接
  • TLS握手阶段建议正常校验Gmail的服务器证书,不要随意关闭证书校验逻辑,避免中间人攻击风险

内容的提问来源于stack exchange,提问作者i chik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:09:02