org.springframework.mail.MailSendException:邮件服务器连接失败。无法连接到主机,端口:localhost,25;超时-1;

问题描述 投票:0回答:1

我尝试在验证用户身份时发送邮件,但收到此错误消息。

@服务 公共类 EmailService {

private final JavaMailSender mailSender;
private final MailConfigurationProperties mailConfigurationProperties;
private final Logger logger = LoggerFactory.getLogger(EmailService.class);

public EmailService( JavaMailSender mailSender, MailConfigurationProperties mailConfigurationProperties) {
    this.mailSender = mailSender;
    this.mailConfigurationProperties = mailConfigurationProperties;
}

public void sendEmail(String to, String subject, String content) {
    logger.info("Sending email from [{}] to [{}] with subject [{}].",
            mailConfigurationProperties.getUsername(), to, subject);

    MimeMessage mimeMessage = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, "utf-8");
    try {
        helper.setText(content, true);
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setFrom(mailConfigurationProperties.getUsername());
        mailSender.send(mimeMessage);
        logger.info("Successfully sent mail to: " + to);
    } catch (MessagingException e) {
        logger.error("Failed to send email", e);
    }

}

}

这是我尝试发送电子邮件的地方

@PostMapping("/signup")
public String signup(@RequestParam String email,
                     @RequestParam String fullname,
                     @RequestParam String username,
                     @RequestParam String password){

    User user = userService.saveUser(email, fullname, username, password);
    String random=userService.generateRandomString(16);
    userService.setVerificationCode(user, random);
    emailService.sendEmail(email, "timestamps app", random);

    return "redirect:/verify_email";
}

application.yml 文件

邮件: 主机:smtp.gmail.com 端口:587 用户名:[电子邮件受保护] 密码: ********* smtpAuth: true starttlsEnabled:true

spring spring-boot spring-security spring-data-jpa
1个回答
0
投票

您的

JavaMailSender
未从您的
application.yaml
正确配置。

所以有以下属性

mail: 
  host: smtp.gmail.com 
  port: 587 
  username: [email protected] 
  password: ********* 
  smtpAuth: true 
  starttlsEnabled: true

spring注册bean时不考虑

javaMailSender

这就是你的堆栈跟踪的证明

org.springframework.mail.MailSendException:邮件服务器连接 失败的。无法连接到主机,端口:localhost,25;超时-1;

所以你的调查应该是为什么你的

application.yaml
不被考虑从春天开始

© www.soinside.com 2019 - 2024. All rights reserved.