顺德中小企业网站建设,热搜榜百度,阿里云网站建设方案,学习网页制作的网站springboot整合第三方技术邮件系统#xff0c;发邮件是java程序的基本操作#xff0c;springboot整合javamail其实就是简化开发。不熟悉邮件的小伙伴可以先学习完javamail的基础操作#xff0c;再来看这一部分内容才能感触到springboot整合javamail究竟简化了哪些操作。简化…springboot整合第三方技术邮件系统发邮件是java程序的基本操作springboot整合javamail其实就是简化开发。不熟悉邮件的小伙伴可以先学习完javamail的基础操作再来看这一部分内容才能感触到springboot整合javamail究竟简化了哪些操作。简化的多码其实不多差别不大只是还个格式而已。
学习邮件发送之前先了解3个概念这些概念规范了邮件操作过程中的标准。
SMTPSimple Mail Transfer Protocol简单邮件传输协议用于发送电子邮件的传输协议POP3Post Office Protocol - Version 3用于接收电子邮件的标准协议IMAPInternet Mail Access Protocol互联网消息协议是POP3的替代协议
简单说就是SMPT是发邮件的标准POP3是收邮件的标准IMAP是对POP3的升级。我们制作程序中操作邮件通常是发邮件所以SMTP是使用的重点收邮件大部分都是通过邮件客户端完成所以开发收邮件的代码极少。除非你要读取邮件内容然后解析做邮件功能的统一处理。例如HR的邮箱收到求职者的简历可以读取后统一处理。但是为什么不制作独立的投递简历的系统呢所以说好奇怪的需求因为要想收邮件就要规范发邮件的人的书写格式这个未免有点强人所难并且极易收到外部攻击你不可能使用白名单来收邮件。如果能使用白名单来收邮件然后解析邮件还不如开发个系统给白名单中的人专用呢更安全总之就是鸡肋了。下面就开始学习springboot如何整合javamail发送邮件。
发送简单邮件
步骤①导入springboot整合javamail的starter
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-mail/artifactId
/dependency步骤②配置邮箱的登录信息
host供应商QQ就写smtp.qq.com
spring:mail:host: smtp.126.comusername: test126.compassword: testjava程序仅用于发送邮件邮件的功能还是邮件供应商提供的所以这里是用别人的邮件服务要配置对应信息。
host配置的是提供邮件服务的主机协议当前程序仅用于发送邮件因此配置的是smtp的协议。
password并不是邮箱账号的登录密码是邮件供应商提供的一个加密后的密码也是为了保障系统安全性。不然外部人员通过地址访问下载了配置文件直接获取到了邮件密码就会有极大的安全隐患。有关该密码的获取每个邮件供应商提供的方式都不一样此处略过。可以到邮件供应商的设置页面找POP3或IMAP这些关键词找到对应的获取位置。下例仅供参考 步骤③使用JavaMailSender接口发送邮件
Service
public class SendMailServiceImpl implements SendMailService {Autowiredprivate JavaMailSender javaMailSender;//发送人private String from testqq.com;//接收人private String to test126.com;//标题private String subject 测试邮件;//正文private String context 测试邮件正文内容;Overridepublic void sendMail() {SimpleMailMessage message new SimpleMailMessage();message.setFrom(from(小甜甜));message.setTo(to);message.setSubject(subject);message.setText(context);javaMailSender.send(message);}
} 将发送邮件的必要信息发件人、收件人、标题、正文封装到SimpleMailMessage对象中可以根据规则设置发送人昵称等。
发送多组件邮件附件、复杂正文
发送简单邮件仅需要提供对应的4个基本信息就可以了如果想发送复杂的邮件需要更换邮件对象。使用MimeMessage可以发送特殊的邮件。
发送网页正文邮件
Service
public class SendMailServiceImpl2 implements SendMailService {Autowiredprivate JavaMailSender javaMailSender;//发送人private String from testqq.com;//接收人private String to test126.com;//标题private String subject 测试邮件;//正文private String context img srcABC.JPG/a hrefhttps://www.itcast.cn点开有惊喜/a;public void sendMail() {try {MimeMessage message javaMailSender.createMimeMessage();MimeMessageHelper helper new MimeMessageHelper(message);helper.setFrom(to(小甜甜));helper.setTo(from);helper.setSubject(subject);helper.setText(context,true); //此处设置正文支持html解析javaMailSender.send(message);} catch (Exception e) {e.printStackTrace();}}
}发送带有附件的邮件
Service
public class SendMailServiceImpl2 implements SendMailService {Autowiredprivate JavaMailSender javaMailSender;//发送人private String from testqq.com;//接收人private String to test126.com;//标题private String subject 测试邮件;//正文private String context 测试邮件正文;public void sendMail() {try {MimeMessage message javaMailSender.createMimeMessage();MimeMessageHelper helper new MimeMessageHelper(message,true); //此处设置支持附件helper.setFrom(to(小甜甜));helper.setTo(from);helper.setSubject(subject);helper.setText(context);//添加附件File f1 new File(springboot_23_mail-0.0.1-SNAPSHOT.jar);File f2 new File(resources\\logo.png);helper.addAttachment(f1.getName(),f1);helper.addAttachment(哆啦A梦.png,f2);javaMailSender.send(message);} catch (Exception e) {e.printStackTrace();}}
}总结
springboot整合javamail其实就是简化了发送邮件的客户端对象JavaMailSender的初始化过程通过配置的形式加载信息简化开发过程