Java邮件发送
- 导入依赖,版本随自己项目的springboot版本变化
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>${spring-boot.version}</version>
</dependency>
- properties文件配置,注意密码是开通IMAP/SMTP的密码
优先设置端口为:587,其次465,默认25(25端口有可能会被禁用)
端口更多详情见:邮件端口详解
spring.mail.host=smtp.feishu.cn
spring.mail.port=587
spring.mail.protocol=smtp
spring.mail.username=xxxx@mirmiles.com
spring.mail.password=SxxxxUMISRMdpwBN
spring.mail.default-encoding=UTF-8
spring.mail.from=xxxx@mirmiles.com
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
public class SendEmail {
private String[] tos;
private String subject;
private String content;
public String[] getTos() {
return tos;
}
public void setTos(String[] tos) {
this.tos = tos;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public SendEmail (String[] tos, String subject, String content) {
this.tos = tos;
this.subject = subject;
this.content = content;
}
}
@Component
public class ComMailSender {
@Resource
private JavaMailSender javaMailSender;
@Value("${spring.mail.username}")
private String from;
public Boolean commonEmail(SendEmail sendEmail) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(sendEmail.getTos());
message.setSubject(sendEmail.getSubject());
message.setText(sendEmail.getContent());
javaMailSender.send(message);
return true;
}
}