- 编写发送代码
- 由于SprigBoot的自动配置以及帮我们注册了JavaMailSenderImpl的Bean, 所以我们可以直接使用它
@Service
public class MailService {
//注入senderImpl
@Autowired
private JavaMailSenderImpl sender;
public void sendSimpleMessage() {
//实例化一个简单邮件
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
//设置邮件信息
simpleMailMessage.setFrom(“XXXXXX@qq.com”); //发送者QQ
simpleMailMessage.setTo(“XXXXXX@qq.com”); //接收着QQ
simpleMailMessage.setSubject(“紧急通知”); //邮件主题
simpleMailMessage.setText(“开个玩笑,哈哈哈”); //邮件内容
//发送
sender.send(simpleMailMessage);
System.out.println(“[DEBUG]” + simpleMailMessage.getSubject() + “,发送成功”);
}
public void sendMimeMessage() throws MessagingException {
//实例一个复杂邮件
MimeMessage mimeMessage = sender.createMimeMessage();
//true表示如果需要,以多部分模式(支持替代文本,内联元素和附件)
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
//信息构建
mimeMessageHelper.setSubject(“爽娃娃”);
mimeMessageHelper.setText(“”, true); //true表示是否以html解析
//发送附件, 第一个参数表示附件名, 第二个参数为附件
mimeMessageHelper.addAttachment(“小哥哥好坏.png”,
new File(“C:\Users\Huawei\Desktop\QQ截图20201118160318.png”));
mimeMessageHelper.setFrom(“XXXXXX@qq.com”);
mimeMessageHelper.setTo(“XXXXXX@qq.com”);
sender.send(mimeMessage);
System.out.println(“[DEBUG]” + mimeMessage.getSubject() + “,发送成功”);
}
}
- 编写controller访问
@RestController
public class MailController {
@Autowired
private MailService service;
@RequestMapping(“/send”)
public String send() {
System.out.println(“开始发送时间:” + new Date().toString());
service.sendSimpleMessage();
System.out.println(“返回响应时间:” + new Date().toString());
return “Send OK”;
}
@RequestMapping(“/send2”)
public String send2() {
System.out.println(“开始发送时间:” + new Date().toString());
try {
service.sendMimeMessage();
} catch (MessagingException e) {
e.printStackTrace();
}
System.out.println(“返回响应时间:” + new Date().toString());
return “Send OK”;
}
}
- 测试, 运行项目, 访问路径controller
- 邮件发送成功, 但是我们通过DEBUG的时间发现耗时太长
- 我们使用异步任务对其进行优化
- 开启异步任务 @EnableAsync //开启异步任务
@SpringBootApplication
@EnableAsync //开启异步任务
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
总结
总的来说,面试是有套路的,一面基础,二面架构,三面个人。
最后,小编这里收集整理了一些资料,其中包括面试题(含答案)、书籍、视频等。希望也能帮助想进大厂的朋友
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
里收集整理了一些资料,其中包括面试题(含答案)、书籍、视频等。希望也能帮助想进大厂的朋友**
[外链图片转存中…(img-ZeMHdoK1-1713289772844)]
[外链图片转存中…(img-PeD9uwF4-1713289772845)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!