【问题标题】:Send Email using Spring Boot使用 Spring Boot 发送电子邮件
【发布时间】:2019-03-25 08:40:53
【问题描述】:

我做了一个小应用程序来使用 spring boot 发送带有 attemet 的电子邮件,一开始它可以工作,然后我遇到了端口问题:

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

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

【问题讨论】:

  • 请添加代码部分

标签: spring-boot email


【解决方案1】:

我在这段代码中使用 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);
}

比较一下我和你的代码,可能你忘了写点什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2017-08-03
    • 1970-01-01
    相关资源
    最近更新 更多