【发布时间】:2019-03-25 08:40:53
【问题描述】:
我做了一个小应用程序来使用 spring boot 发送带有 attemet 的电子邮件,一开始它可以工作,然后我遇到了端口问题:
“无法连接到主机,端口:smtp.gmail.com, 587; timeout -1”
我尝试将端口更改为"465"。
但是我发现了同样的问题。
怎么了?
谢谢
【问题讨论】:
-
请添加代码部分
标签: spring-boot email
我做了一个小应用程序来使用 spring boot 发送带有 attemet 的电子邮件,一开始它可以工作,然后我遇到了端口问题:
“无法连接到主机,端口:smtp.gmail.com, 587; timeout -1”
我尝试将端口更改为"465"。
但是我发现了同样的问题。
怎么了?
谢谢
【问题讨论】:
标签: spring-boot email
我在这段代码中使用 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);
}
比较一下我和你的代码,可能你忘了写点什么。
【讨论】: