项目配置
简单文本邮件
◆引入相关Jar包
◆配置邮箱参数
◆封装SimpleMailMessage
◆JavaMailSender进行发送
application.yml
spring.mail.host=smtp.126.com
spring.mail.username=ityouknow@126.com
spring.mail.passworld=yourPassword126
spring.mail.default-encoding=UTF-8
使用start.spring.io构建项目,写测试接口;
第二部分 实践
Hello World
◆start.spring.io
◆基础配置
◆编写hello world
◆进行测试
邮件传输协议:SMTP协议和POP3协议;
内容不断发展:MAP协议和Mime协议;
邮件功能的常见错误
邮件系筒
生成个简单的项目,作为基础:
https://start.spring.io/
demo:
。。。。。
简单邮递发送协议(英语:Simple Mail Transfer Protocol,缩写:SMTP)
可用在发送和接收电子邮件的信息,但SMTP通常用作发送电子邮件信息,而不是接收。
SMTP是一个相对简单的基于文本的协议。
邮局协议(英语:Post Office Protocol,缩写:POP)是TCP/IP协议族中的一员。此协议主要用于支持使用客户端远程管理在服务器上的电子邮件。最新版本为POP3,全名“Post Office Protocol - Version 3”,而提供了SSL加密的POP3协议被称为POP3S。
POP支持离线邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或Mac。一旦邮件下载到PC机或Mac上,邮件服务器上的邮件将会被删除。但目前的POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。
IMAP(Internet Message Access Protocol)以前称作交互邮件访问协议(Interactive Mail Access Protocol),是一个应用层协议。
MIME的全称是"Multipurpose Internet Mail Extensions",中译为"多用途互联网邮件扩展",指的是一系列的电子邮件技术规范。
独立服务,共用服务,调用
邮件发送流程
邮件系统需要考虑的问题
常见错误:
约定大于配置
简单快速开发
强大的生态链
421垃圾攻击
451暴力破解账号
553接口调用失败
spring boot的优点
IMAP是一个邮件同步机制吗
1-1 课程介绍
第一部分 背景
背景
邮件使用场景
SpringBoot介绍
邮件发送原理
前置知识。
邮件发送历史。
第二部分 实践
发送文本邮件 带图片的邮件
发送HTML邮件 邮件模板
发送附件邮件 邮件
SMTP协议主要负责一台服务器将邮件传送另一台服务器
pop协议如何从服务器上下载邮件;
邮件使用场景:
一、注册验证:
用户填写相关信息,点击注册按钮
系统先将用户记录保存到数据库中,其中用户状态为未激活
系统发送一封邮件并通知用户去验证
用户登录邮箱并点击激活链接
系统将用户状态更改为已激活并通知用户注册成功
二、网站营销:网站在活动前几天向用户邮箱发送活动提醒邮件。
String filePath="d:/java/java-mail/README.md";
windows 文件写法和mac linux 不一样。
邮件发送流程
优点:1.约定大于配置;
2.简单快速开发;
3.强大的生态链;
smtp:邮件从一台服务器·传输到另外一台服务器;
pop:如何从服务器上下载邮件;
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <a href="" th:href="@{https://www.jianshu.com/u/{id}(id=${id})}">激活帐号</a> </body> </html>
测试
@Autowired TemplateEngine templateEngine; Context context=new Context(); context.setVariable("id","f192766abeab"); String emailContent=templateEngine.process("emailTemplate",context); mailService.sendHtmlMail("邮箱","主题",emailContent);
发送图片邮件
@Value("${spring.mail.username}") private String from; @Autowired JavaMailSender javaMailSender; public void sendInLinResourceMail(String to,String subject,String content,String rscPath,String rscId) throws MessagingException { MimeMessage mimeMessage=javaMailSender.createMimeMessage(); MimeMessageHelper mimeMessageHelper=new MimeMessageHelper(mimeMessage,true); mimeMessageHelper.setFrom(from); mimeMessageHelper.setTo(to); mimeMessageHelper.setSubject(subject); mimeMessageHelper.setText(content,true); FileSystemResource fileSystemResource=new FileSystemResource(new File(rscPath)); mimeMessageHelper.addInline(rscId,fileSystemResource); javaMailSender.send(mimeMessage); }
测试,基于windows
String imgPath="E:\\文件名"; String rscId="img001"; String content = "<html><body>图片附件:<img src=\'cid:"+rscId+"\'><img></body></html>"; mailService.sendInLinResourceMail("邮箱","主题",content,imgPath,rscId);
发送附件邮件
@Value("${spring.mail.username}") private String from; @Autowired JavaMailSender javaMailSender; public void sendAttachmentMail(String to,String subject,String content,String filePath) throws MessagingException { MimeMessage mimeMessage=javaMailSender.createMimeMessage(); MimeMessageHelper mimeMessageHelper=new MimeMessageHelper(mimeMessage,true); mimeMessageHelper.setFrom(from); mimeMessageHelper.setTo(to); mimeMessageHelper.setSubject(subject); mimeMessageHelper.setText(content,true); FileSystemResource fileSystemResource=new FileSystemResource(new File(filePath)); String fileName=fileSystemResource.getFilename(); mimeMessageHelper.addAttachment(fileName,fileSystemResource); javaMailSender.send(mimeMessage); }
测试(基于windows)
mailService.sendAttachmentMail("邮箱","主题","内容","E:\\文件名");
发送HTML邮件
@Value("${spring.mail.username}") private String from; @Autowired JavaMailSender javaMailSender; public void sendHtmlMail(String to,String subject,String content) throws MessagingException { MimeMessage mimeMessage=javaMailSender.createMimeMessage(); MimeMessageHelper mimeMessageHelper=new MimeMessageHelper(mimeMessage,true); mimeMessageHelper.setFrom(from); mimeMessageHelper.setTo(to); mimeMessageHelper.setSubject(subject); mimeMessageHelper.setText(content,true); javaMailSender.send(mimeMessage); }
测试
String content="<html>\n"+ "<body>\n"+ "<h3>hello world</h3>\n"+ "</body>\n"+ "</html>"; mailService.sendHtmlMail("邮箱","主题",content);
@Value("${spring.mail.username}") private String from; @Autowired JavaMailSender javaMailSender; public void sendSimpleMail(String to,String subject,String content){ SimpleMailMessage simpleMailMessage=new SimpleMailMessage(); simpleMailMessage.setFrom(from); simpleMailMessage.setTo(to); simpleMailMessage.setSubject(subject); simpleMailMessage.setText(content); javaMailSender.send(simpleMailMessage); }
简单文本邮件发送
mailService.sendSimpleMail("邮箱","主题","内容");
邮件操作是异步的操作
MessagingException:邮件发送失败异常