zoukankan      html  css  js  c++  java
  • Springboot项目发送邮件功能

      本帖介绍如何在Springboot项目中发送邮件

      首先,在pom中引入依赖:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>

      然后在application.properties中加上

      mail:
        host: smtp.163.com
        username: 发送者的邮箱账号
        password: 邮箱密码
        properties:
          mail:
            smtp:
              auth: true
              starttls:
                enable: true
                required: true

    这里有一点要注意,host是邮箱格式,这里用的163.com,也就是网易邮箱,网易企业邮箱是: smtp.qiye.163.com

    其他类型的邮箱可以自己百度一下格式.

    还有就是我们需要开启POP3/SMTP服务,开启时会让我们设置客户端授权码,这个授权码替代上面代码部分的password即可成功发送邮件,

     代码是使用JavaMailSender类,发送邮件的方法如下:

    @Autowired
        private JavaMailSender javaMailSender;
    
        @AutoLog(value = "发送薪资信息邮件")
        @ApiOperation(value = "发送薪资信息邮件", notes = "发送薪资信息邮件")
        @PostMapping(value = "/sendEmail")
        public Result<?> sendEmail(@RequestParam String file) {
            //获取登录人的信息
            LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
            boolean status = false;
            try {
                // 使用SimpleMailMessage,支持简单的邮件格式和内容
                //SimpleMailMessage message = new SimpleMailMessage();
                MimeMessage msg = javaMailSender.createMimeMessage();
                MimeMessageHelper message = new MimeMessageHelper(msg, true);
                message.setFrom(from); // 邮件发送者
                message.setTo(sysUser.getEmail()); // 邮件接受者
                message.setSubject("上个月薪资信息"); // 主题
                message.setText(file,true); // 内容!
                javaMailSender.send(msg);// 消息发送
                status = true;
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println(e.getMessage());
                throw new JeecgBootException("发送失败,请联系IT运维人员");
            }
    
            if (status) {
                return Result.OK("发送成功");
            } else {
                return Result.error("发送失败");
            }
    
        }    

    在这里我解释一下,要先依赖注入JavaMailSender, 有两种邮件,一种是简单的文本邮件,可以用SimpleMailMessage 

    另一种是复杂格式的,例如html格式,文件附件等等都可以发送,具体可以自己研究一下,需要用MimeMessage 

    这里的代码是前台传过来一个html格式的文件,我就用了MimeMessage 

    对于MimeMessageHelper 实体的各个方法也有对应的注释,这里不再进行过多解释

    如果只发送文本邮件,可以使用SimpleMailMessage ,新建一个SimpleMailMessage对象,直接往对象里放发送者,接收者,主题,内容等等,然后用

      javaMailSender.send(对象)     

    即可,也就是上面的代码把

      MimeMessage msg = javaMailSender.createMimeMessage();

      MimeMessageHelper message = new MimeMessageHelper(msg, true);

    去掉,把

      SimpleMailMessage message = new SimpleMailMessage();

    取消注释.

  • 相关阅读:
    【LeetCode】543. 二叉树的直径
    红色的眼睛黑色的心
    WinForm
    Windows地址栏的妙用
    C#
    WPF
    配置Notepad++万能调试
    盗取连接你wifi的人的qq
    Windows去除开始菜单图标背景
    解决Windows下文件无法删除的问题
  • 原文地址:https://www.cnblogs.com/hegeainiyo/p/13803956.html
Copyright © 2011-2022 走看看