Springboot实现发送邮件功能
首先我们导入spring的mail方法
1 2 3 4 5 6 7 8
| <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
|
获取邮箱授权码——QQ邮箱为例
打开QQ邮箱(网页)—>最上方的设置—>账号—>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
配置application.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| application.yml spring: mail: host: smtp.qq.com username: 你的邮箱(发送方邮箱) password: 你的邮箱授权码 port: 465 default-encoding: UTF-8 properties: mail: smtp: auth: true starttls: enable: true required: true ssl: enable: true socketFactory: port: 465 class: javax.net.ssl.SSLSocketFactory
|
创建一个Service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| @Service public class MailService {
@Autowired private JavaMailSenderImpl javaMailSender;
@Value("${spring.mail.username}") private String sendMailer;
public void sendTextMailMessage(String to,String subject,String text){ checkMail(to,subject,text); try { MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(javaMailSender.createMimeMessage(),true); mimeMessageHelper.setFrom(sendMailer); mimeMessageHelper.setTo(to.split(",")); mimeMessageHelper.setSubject(subject); mimeMessageHelper.setText(text); mimeMessageHelper.setSentDate(new Date()); javaMailSender.send(mimeMessageHelper.getMimeMessage()); System.out.println("发送邮件成功:"+sendMailer+"->"+to);
} catch (MessagingException e) { e.printStackTrace(); System.out.println("发送邮件失败:"+e.getMessage()); } }
|
Controlle
1 2 3 4 5 6 7 8 9 10
|
@GetMapping("/sendMailMessage") public void sendHtmlMailMessage(String to,String subject,String content){ mailService.sendHtmlMailMessage(to,subject,content); }
|