使用Spring Boot发送电子邮件

时间:2019-03-25 08:40:54

标签: spring-boot email

我制作了一个小应用程序,使用spring boot使用attemet发送电子邮件,首先它可以工作,然后出现端口问题:

  

“无法连接到主机,端口:smtp.gmail.com,587;超时-1”

我试图将端口更改为"465"
但是我发现了同样的问题。
怎么了
谢谢

1 个答案:

答案 0 :(得分:0)

我在此代码中使用spring-boot-starter-mail 2.0.4.RELEASE。

我将此配置用于smtp.gmail.com。

@Configuration
public class EmailSenderConfig {

    @Value("${mail.login}")
    private String login;

    @Value("${mail.password}")
    private String password;

    @Bean
    public JavaMailSender getJavaMailSender() {
        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
        mailSender.setHost("smtp.gmail.com");
        mailSender.setPort(587);

        mailSender.setUsername(login); //login for google account "this.my.email@gmail.com" 
        mailSender.setPassword(password); // password for google account "thisMyPassword666"

        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;
    }
}

此代码用于发送消息

@Autowired
private JavaMailSender mailSender;

public void sendToken(String to) {
    SimpleMailMessage smm = new SimpleMailMessage();

    String token = String.valueOf(new Random().ints(MIN, MAX).findFirst().getAsInt());

    verificationService.saveTemporaryToken(to, token);

    smm.setTo(to);
    smm.setSubject(TITLE);
    smm.setText(token);

    mailSender.send(smm);
}

比较我的代码和你的代码,也许你忘了写东西。