Spring Boot Mail 使用访问令牌发送电子邮件

Spring Boot Mail send email using acces token

我在一个bean中配置的项目中有简单的邮件发送功能。

@Bean
public JavaMailSender javaMailSender() {
    JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();

    Properties properties = new Properties();
    properties.setProperty("mail.smtp.auth", "false");
    properties.setProperty("mail.smtp.socketFactory.port", "465");
    properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    properties.setProperty("smtp.socketFactory.fallback", "false");
    properties.setProperty("mail.smtp.starttls.enable", "true");
    properties.setProperty("mail.smtp.starttls.required", "true");

    javaMailSender.setHost("smtp.gmail.com");
    javaMailSender.setProtocol("smtp");
    javaMailSender.setUsername("username");
    javaMailSender.setPassword("password");
    javaMailSender.setJavaMailProperties(properties);

    return javaMailSender;
}

效果很好。

现在我想添加通过特定电子邮件的 accessToken/refreshToken 发送电子邮件的功能。

怎么做?我应该在我的 bean 中扩展什么或添加另一个 bean 以使用令牌发送?我找不到一些完整解释的例子。据我了解,我应该添加 setFrom() 并在 setPassword() 中放入 accessToken

使用OAUTH2 with JavaMail is explained on the JavaMail project page.

此外,您应该在您的代码中修复这些 common mistakes