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

Quarkus集成Vert.x Mailer保活超时触发Connection Reset问题咨询

根因分析

该报错是Exchange Online(Office 365 SMTP服务)的服务端特性与客户端配置不匹配导致的:

  • 微软官方限制了SMTP端点的空闲连接最大存活时间,该阈值短于你配置的60秒客户端keep-alive超时。服务端会在客户端还未触发空闲连接优雅关闭逻辑时,主动发送RST包断开连接
  • 此时Vert.x Mailer的连接池仍认为该连接处于存活状态,触发读操作时就会捕获到连接重置异常,这并不是优雅关闭逻辑存在缺陷,而是两端超时设置的时间差导致的时序问题

可行解决方案

方案1:调低客户端空闲连接超时时间(最优方案)

将客户端keep-alive超时调整为低于服务端阈值即可,通用配置为30秒,保证客户端先于服务端主动优雅关闭连接,从根源避免报错,同时保留连接复用能力:

quarkus.mailer.host=smtp.office365.com
quarkus.mailer.keep-alive=true
quarkus.mailer.keep-alive-timeout=PT30S

方案2:关闭长连接复用

如果你的业务场景邮件发送频率较低,不需要连接复用能力,可以直接关闭keep-alive,每次发送邮件新建独立连接,发送完成后立即销毁,不会产生空闲连接相关报错:

quarkus.mailer.keep-alive=false

方案3:调整日志级别(仅作临时兜底,不推荐)

如果受业务限制无法调整上述配置,可以临时将io.vertx.ext.mail.impl.SMTPConnection类的日志级别调整为WARN或OFF,屏蔽错误日志输出。该方案仅做表层处理,不会解决连接被重置的本质问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:54:05