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

Spring Boot连接Yahoo SMTP服务器超时问题求助

Spring Boot 连接Yahoo SMTP服务器超时排查与解决

问题详情

Spring Boot项目中配置smtp.mail.yahoo.com的587端口发送邮件,当前持续出现连接超时错误。该功能半年前可正常运行,已尝试调整配置、更换依赖,但问题未解决。

报错日志

[http-nio-8081-exec-2] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.mail.MailSendException: Mail server connection failed; nested exception is com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.mail.yahoo.com, 587; timeout -1;
  nested exception is:
    java.net.ConnectException: Connection timed out: connect. Failed messages: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.mail.yahoo.com, 587; timeout -1;
  nested exception is:
    java.net.ConnectException: Connection timed out: connect; message exceptions (1) are:
Failed message 1: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.mail.yahoo.com, 587; timeout -1;
  nested exception is:
    java.net.ConnectException: Connection timed out: connect] with root cause
java.net.ConnectException: Connection timed out: connect
    at java.base/sun.nio.ch.Net.connect0(Native Method)
    at java.base/sun.nio.ch.Net.connect(Net.java:579)
    at java.base/sun.nio.ch.Net.connect(Net.java:568)
    at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
    at java.base/java.net.Socket.connect(Socket.java:633)
    at java.base/java.net.Socket.connect(Socket.java:583)
    at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:335)
    ...
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:833)

相关代码

邮件发送方法

@Autowired
JavaMailSender mailSender;

public void sendNewPasswordEmail(String firstName, String password, String email) {

    SimpleMailMessage message = new SimpleMailMessage();
    message.setFrom("noreply@baeldung.com");
    message.setTo(email);
    message.setSubject(EMAIL_SUBJECT);
    message.setText("Hello " + firstName + ", \n\n Your new account password is: " + password + "\n\n The Support Team");
    mailSender.send(message);
}

邮件配置Bean

@Bean
public JavaMailSender mailSender() {
    JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
    mailSender.setHost("smtp.mail.yahoo.com");
    mailSender.setPort(587);
    mailSender.setUsername(USERNAME);
    mailSender.setPassword(PASSWORD);

    return mailSender;
}

解决步骤

  1. 确认Yahoo SMTP最新配置
    Yahoo邮箱的SMTP配置可能有更新,当前官方要求:

    • 服务器地址:smtp.mail.yahoo.com
    • 端口:587(需启用TLS)或465(SSL加密)
    • 认证:必须开启
    • 密码:若邮箱开启了两步验证,必须使用应用专用密码,不能用原邮箱登录密码。可在Yahoo账户安全设置中生成应用专用密码。
  2. 补全邮件会话属性配置
    现有配置缺少TLS启用等关键属性,修改配置Bean:

    @Bean
    public JavaMailSender mailSender() {
        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
        mailSender.setHost("smtp.mail.yahoo.com");
        mailSender.setPort(587);
        mailSender.setUsername(USERNAME);
        mailSender.setPassword(PASSWORD);
    
        Properties props = mailSender.getJavaMailProperties();
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.debug", "true"); // 开启调试,方便查看连接细节
    
        return mailSender;
    }
    
  3. 排查网络连通性

    • 用telnet smtp.mail.yahoo.com 587测试端口连通性,若无法连接,说明防火墙、代理或运营商屏蔽了该端口,需调整网络规则或更换端口(比如465)。
    • 若使用代理服务器,需在Java邮件配置中添加代理属性,或确保代理允许访问目标SMTP服务器。
  4. 检查依赖兼容性

    • 若使用Spring Boot 3.x,需使用Jakarta Mail依赖,而非旧的javax.mail。确保spring-boot-starter-mail版本与Spring Boot版本匹配,避免依赖冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 09:31:02