Springboot整合郵件傳送(163郵箱為例)
阿新 • • 發佈:2021-01-12
技術標籤:springmvc
一、新增spring-boot-starter-mail
<!--郵件傳送-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
二、新增yml配置
spring:
mail:
host: smtp.163.com
password : 郵箱授權碼不是密碼
username: 163郵箱
port:
default-encoding: UTF-8
protocol: smtp
properties:
mail.smtp.auth: true
mail.smtp.starttls.enable: true
mail.smtp.starttls.required: true
mail.smtp.socketFactory.port: 465
mail.smtp.socketFactory.class: javax.net.ssl.SSLSocketFactory
mail.smtp.socketFactory.fallback : false
三、傳送郵件實現
public interface MailService {
/**
* 郵件傳送
* @param to
* @param subject
* @param text
* @return
*/
boolean sendMail(String to, String subject, String text);
}
@Service
public class MailServiceImpl implements MailService {
private final JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String from;
public MailServiceImpl(JavaMailSender mailSender) {
this.mailSender = mailSender;
}
@Override
public boolean sendMail(String to, String subject, String text) {
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom(from);
msg.setTo(to);
msg.setSubject(subject);
msg.setText(text);
try {
mailSender.send(msg);
} catch (MailException ex) {
System.err.println(ex.getMessage());
return false;
}
return true;
}
}
四、呼叫介面傳送測試郵件
@RestController
@RequestMapping("mail")
public class EmailController {
@Autowired
MailService mailService;
@RequestMapping("send")
public void sendMail(){
mailService.sendMail("[email protected]","test","test");
}
}