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

spring-boot-starter-mail每30秒连邮件服务器,如何仅发件时连接?

解决Spring Boot邮件组件定期连接邮件服务器的问题

你遇到的每30秒自动连接邮件服务器的情况,是因为Spring Boot默认的JavaMailSender配置了连接池,并且开启了空闲连接有效性检测的定时任务,导致系统会定期去验证连接是否可用。要实现仅在发送邮件时才连接服务器,只需调整以下配置:

  • 关闭空闲连接的自动验证,添加配置:
    spring.mail.properties.mail.smtp.connectionpool.test-while-idle=false
    这个参数会禁止连接池在连接空闲时自动检测有效性,从根源上取消定时连接的触发逻辑。

  • 调整连接池参数,让它不预先创建连接、不保留空闲连接:

    spring.mail.properties.mail.smtp.connectionpool.max-idle-time=0
    spring.mail.properties.mail.smtp.connectionpool.initial-size=0
    

    设置max-idle-time=0会让空闲连接立即被回收,initial-size=0则禁止连接池启动时预先创建连接,确保只有在实际发送邮件时才会建立新连接。

如果你的项目是Spring Boot 3+版本(使用Jakarta Mail替代JavaMail),上述配置同样适用,参数名没有变化。

配置完成后,邮件组件只会在你调用发送邮件的方法时才会连接邮件服务器,发送完成后连接会被立即回收,不会再出现每30秒自动连接的日志。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 16:45:47