SpringBoot实现邮件发送功能的姿势分享

目录

  • 前言
  • I. 项目环境
    • 1. 项目依赖
    • 2. 配置
  • II. 邮件发送
    • 1. 简单文本邮件发送
    • 2. html发送
    • 3. 添加附件
    • 4. Freemaker模板
    • 5. 测试与小结
  • III. 不能错过的源码和相关知识点
    • 0. 项目
  • 总结

    前言 邮件发送,在实际的项目开发中,可能用的不是特别多,如果没有特定的需求,相信也没有多少小伙伴会特意的去关注,那么如果现在我们希望针对项目做一个异常的报警系统,当出现异常的时候,可以向指定的小伙伴发送邮件提醒,那么让我们来实现这个功能,可以怎么办呢?
    这里介绍一下如何使用SpringBoot封装好的MailSender来实现邮件发送

    I. 项目环境

    1. 项目依赖

    本项目借助SpringBoot 2.2.1.RELEASE + maven 3.5.3 + IDEA进行开发
    开一个web服务用于测试
    org.springframework.bootspring-boot-starter-mailorg.springframework.bootspring-boot-starter-freemarker


    2. 配置

    在开始之前,我们需要先准备一个用于发送邮件的账号,比如我这里使用163的邮箱来发送邮件,需要先到邮箱提供商哪里获取授权码,具体如何获取这个东西,不同的邮箱姿势有些不同,各位小伙伴根据自己的实际情况,搜索一下,相信很快就能get到
    这里简单介绍下网易邮箱的获取方式
    【SpringBoot实现邮件发送功能的姿势分享】SpringBoot实现邮件发送功能的姿势分享
    文章图片

    接下来设置发送邮件相关的配置信息,配置文件application.yml
    spring:#邮箱配置mail:host: smtp.163.comfrom: xhhuiblog@163.com# 使用自己的发送方用户名 + 授权码填充username:password:default-encoding: UTF-8properties:mail:smtp:auth: truestarttls:enable: truerequired: true


    II. 邮件发送
    接下来进入正题,我们将从简单基础的文本邮件发送开始,逐渐介绍如何添加附件,使用漂亮的html模板等

    1. 简单文本邮件发送

    我们这里直接使用JavaMailSender来发送一个基础的文本邮件
    @Servicepublic class MailDemo {@Autowiredprivate JavaMailSender javaMailSender; @Value("${spring.mail.from:xhhuiblog@163.com}")private String from; private void basicSend() {SimpleMailMessage simpleMailMessage = new SimpleMailMessage(); //邮件发送人simpleMailMessage.setFrom(from); //邮件接收人,可以是多个,参数为可变参数simpleMailMessage.setTo("bangzewu@126.com"); //邮件主题,也就是标题simpleMailMessage.setSubject("SpringBoot测试邮件发送"); //邮件内容simpleMailMessage.setText("简单的邮件正文"); javaMailSender.send(simpleMailMessage); }}

    • JavaMailSender: 直接作为一个Spring 的bean对象使用
    • SimpleMailMessage:简单的邮件对象,里面有一些邮件发送时,关联的基础信息
      • from: 发送方
      • replyTo: 邮件回复的收件人
      • to: 收件人
      • cc: 抄送
      • bcc: 密送
      • subject: 主题,也就是邮件标题
      • text: 邮件正文,文本格式
      • date: 邮件发送时间

    2. html发送

    对于简单的文本邮件发送,用上面的基本就够了,如果我们希望邮件的内容更美观一点的话,可以借助HTML来实现排版
    区别于上面的SimpleMailMessage, 这里使用的是MimeMessage,来实现html内容发送
    使用姿势与上面相比差不多,无非就是正文变成了html文本罢了
    /** * 发送html */public void sendHtml() throws MessagingException {MimeMessage mimeMailMessage = javaMailSender.createMimeMessage(); MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage, true); mimeMessageHelper.setFrom(from); mimeMessageHelper.setTo("bangzewu@126.com"); mimeMessageHelper.setSubject("SpringBoot测试邮件发送"); //邮件内容mimeMessageHelper.setText("Hello World
    " +" 欢迎点击 一灰灰博文地址
    " +" SpringBoot实现邮件发送功能的姿势分享
    文章图片

    SpringBoot实现邮件发送功能的姿势分享
    文章图片

    本篇博文介绍了一下如何发送邮件,并针对简单的文本邮件,html正文,附件等不同的给出了实例;整体看下来使用姿势不难,不过邮件的几个术语可以了解一下
    • to: 接收人,就是邮件发送的目标群众
    • cc: 抄送,一般来讲抄送的名单,只是让他感知到有这封邮件,属于周知对象
    • bcc: 密送,与上面两个不一样,接收人和抄送人不知道密送给谁了,这就是最大的区别,说实话这个玩意我从没用过
    接下来一篇博文,将介绍一下如何将log日志与邮件发送关联起来,当出现异常的时候,邮件发送给开发者

    III. 不能错过的源码和相关知识点

    0. 项目
    工程:github.com/liuyueyi/sp…
    源码:github.com/liuyueyi/sp…

    总结 到此这篇关于SpringBoot实现邮件发送功能的文章就介绍到这了,更多相关SpringBoot邮件发送内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

      推荐阅读