使用Java Spring Boot连接Hostinger邮箱时遭遇连接拒绝问题
Spring Boot 连接Hostinger邮箱SMTP服务失败排查方案
问题场景
在Spring Boot项目中使用Hostinger邮箱服务发送邮件时,出现连接拒绝错误,相关信息如下:
1. application.properties配置
spring.mail.host=smtp.hostinger.com spring.mail.port=465 spring.mail.username=myMailFromHostinger spring.mail.password=password spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true
2. Maven依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
3. 发送邮件代码
public void sendEmail(String email, String subject, String body) { JavaMailSender javaMailSender = new JavaMailSenderImpl(); SimpleMailMessage simpleMailMessage = new SimpleMailMessage(); simpleMailMessage.setFrom("myMailFromHostinger"); simpleMailMessage.setTo(email); simpleMailMessage.setText(body); simpleMailMessage.setSubject(subject); javaMailSender.send(simpleMailMessage); }
4. 报错信息
Caused by: java.net.ConnectException: Connection refused: connect
排查&解决步骤
1. 修正SMTP端口与加密配置不匹配问题
Hostinger的465端口使用SSL加密,而你配置的starttls.enable=true是25/587端口的STARTTLS加密规则,两者冲突导致连接失败。修改配置:
# 保留原有核心配置,替换加密规则 spring.mail.host=smtp.hostinger.com spring.mail.port=465 spring.mail.username=myMailFromHostinger spring.mail.password=password spring.mail.properties.mail.smtp.auth=true # 开启SSL加密,移除starttls配置 spring.mail.properties.mail.smtp.ssl.enable=true
2. 改用Spring注入的JavaMailSender实例
你手动new JavaMailSenderImpl()的方式不会读取application.properties中的配置,相当于用默认参数连接,必然失败。改为Spring自动注入的实例:
// 注入Spring自动配置好的JavaMailSender @Autowired private JavaMailSender javaMailSender; public void sendEmail(String email, String subject, String body) { SimpleMailMessage simpleMailMessage = new SimpleMailMessage(); simpleMailMessage.setFrom("myMailFromHostinger"); simpleMailMessage.setTo(email); simpleMailMessage.setText(body); simpleMailMessage.setSubject(subject); javaMailSender.send(simpleMailMessage); }
3. 验证账号与网络环境
- 确认
username是Hostinger邮箱的完整地址(例如yourname@yourdomain.tld,不能只填前缀) - 如果开启了2FA,需使用Hostinger提供的应用专用密码替代普通登录密码
- 用
telnet smtp.hostinger.com 465测试端口连通性,若无法连接,检查本地/服务器防火墙是否封禁465端口,或联系Hostinger客服确认服务状态
4. 可选:切换至587端口(STARTTLS)
若465端口仍有问题,可尝试使用587端口,配置如下:
spring.mail.host=smtp.hostinger.com spring.mail.port=587 spring.mail.username=myMailFromHostinger spring.mail.password=password spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true
内容的提问来源于stack exchange,提问作者RedBlue
相关产品推荐
相关产品推荐

