今天同事遇见个前辈留下的bug,甩给了我:一个邮件微服务启动时报错:com.sun.mail.util.MailConnectException: Couldn't connect to host, port: ipXXXX 25; timeout -1。确认是服务器地址配错了,但怎么启动时系统访问邮件服务器了?某明奇妙,赶紧review代码去,万一有启动访问邮件服务器的代码呢。
自认为对发邮件一碟小菜,全局搜索找到发邮件的服务代码。没发现哪里自接调用访问邮件服务器代码,甚至没找到设置邮件服务器信息的代码,什么鬼?查看下pom瞅瞅这个邮件发送引用了何方神圣。发现使用的springboot 的邮件发送三方库 spring-boot-starter-mail,果然木用过也不熟悉。查资料研究了一番spring-boot-starter-mail插件,又结合日志最终定位是启动时,插件启用了的健康检查功能,访问了邮件服务器。就百度了下禁用健康检查设置:
management.health.mail.enabled=false
management.health.mongo.enabled =false
management.health.redis.enabled =false
management.health.solr.enabled =false
management.health.elasticsearch.enabled=false
解决问题