我不考虑将来。要是我既要想着今天,又要操心明天,生活就没意思了。 每当事情遭到不能再糟的地步时,我总发现天无绝人之路。
目录
前言环境准备所需依赖配置文件代码实现前言
关于如何搭建SpringBoot工程以及开启Web功能,
可以查看我的这篇博客:用Spring Initializr快速构建SpringBoot及整合MVC
环境准备
首先,我们需要打开QQ邮箱,进入设置,选中账户,开启SMTP服务,如图:
并生成授权码,授权码的作用相当于QQ邮箱的密码。
所需依赖
在依赖管理文件pom.xml
中导入发送邮件所需要的起步依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
配置文件
在配置文件application.yml
中配置发送邮箱方的相关信息:
spring:# 配置QQ邮箱mail:#默认发送邮件基于smtp协议 可不要protocol: smtp#smtp服务器地址host: #发送方的邮箱username: ******@#发送方的密码(授权码或者QQ邮箱密码都可以)password: ********properties:mail:smtp:auth: truestarttls:enable: truerequired: true
代码实现
首先需要一个邮件实体类:
package com.guqueyue.entity;/*** @author guqueyue* @Date /5/26**/@Data //lombok插件的注解,若是没有用lombok插件,请自行生成getter、setter方法@AllArgsConstructor //全参构造方法@NoArgsConstructor //无参构造方法@Accessors(chain = true) //开启链式编程public class Email implements Serializable {/*** 接收者*/private String to;/*** 邮件标题*/private String subject;/*** 发送内容*/private String context;/*** 发送时间*/private Date sendTime;}
其次在Web层新建一个Controller,代码如下:
package com.guqueyue.controller;/*** @author guqueyue* @Date /5/26* 发送邮件**/@Controller@RequestMapping("/send")public class MailController {@Autowiredprivate JavaMailSender javaMailSender;/*** 获取配置文件里的发送方*/@Value("${spring.mail.username}")private String from;@RequestMapping("/mail")public void sendMail() throws MessagingException {// 设置邮件内容Email email = new Email().setSubject("这是一封测试邮件").setContext("<hr/>盖西伯(周文王)拘而演《周易》;<br/> 仲尼厄而作《春秋》;<br/>屈原放逐,乃赋《离骚》;<br/>" +"左丘失明,厥有《国语》;<br/>孙子膑脚,《兵法》修列;<br/>" +"不韦迁蜀,世传《吕览》;<br/>韩非囚秦,《说难》、《孤愤》;《诗》三百篇大抵圣贤发愤之所作也。<hr/>").setTo(from).setSendTime(new Date());// 发送邮件send(email);}/*** 发送邮件的方法*/public void send(Email email) throws MessagingException {System.out.println("接收到的邮件对象为:" + email);//创建一封邮件MimeMessage mimeMessage = javaMailSender.createMimeMessage();//Spring提供的一个便捷的邮件设置对象MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);//设置邮件的内容//标题mimeMessageHelper.setSubject(email.getSubject());//发送方mimeMessageHelper.setFrom(from);//接收方mimeMessageHelper.setTo(email.getTo());//接收者// mimeMessageHelper.setCc("***@");//抄送// mimeMessageHelper.setBcc("***@");//密送//设置内容mimeMessageHelper.setText(email.getContext(), true);//发送附件// mimeMessageHelper.addAttachment("我的附件.jpg", new File("C:\\worker\\images\\7f25dc3b-13e5-42a5-a205-8276b0528040"));//设置当前时间mimeMessageHelper.setSentDate(email.getSendTime());//发送邮件javaMailSender.send(mimeMessage);System.out.println("成功发送邮件......");}}
然后运行程序,在浏览器输入http://localhost:8080/send/mail
,不必理会页面的404错误,发现邮箱收到以下邮件即为成功: