Springboot项目发送邮件功能

摘要:
这篇文章描述了如何在Springboot项目中发送电子邮件。首先,在pom:org中引入依赖关系。springframework Bootspringframeworkstarter mail然后将mail:host:sm添加到application.properties

  本帖介绍如何在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即可成功发送邮件,

Springboot项目发送邮件功能第1张

 代码是使用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();

取消注释.

免责声明:文章转载自《Springboot项目发送邮件功能》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇HAProxy配置代理js学习难点下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

elementui使用MessageBox 弹框自定义内容$msgbox:实现一个textarea文本输入框

1.首先,让我们看一下官方网站的示例:单击打开MessageBoxexportdefault{methods:{open(){consth=this.$createElement;this.$msgbox({title:'message',message:h('p...

HP服务器设置iLO

HP Server Setting iLO Step 1.开机后出现界面-按F11进入BootMenu;2.选择GenericUSBBoot并输入;3.选择SystemConfiguration(系统配置)并按Enter键;4.选择iLO4ConfigurationUtility进入;5.选择NetworkOptions Enter将DHCPEnable设置...

cocosCreator中Protobuf的简单使用

CocosCreatorwebStorm或VSCode安装node.js下载protobufjs6.8.6步骤:...

面试了一个 31岁的iOS开发者,思绪万千,30岁以上的程序员还有哪些出路?

前言之前HR给了我一份简历,刚看到简历的第一眼,31岁?31岁,iOS开发工程师,工作经历7年,5年左右都在外包公司,2年左右在创业公司。iOS开发工程师这块,还是很少遇到30岁以上的开发,正好,来了一个30岁的开发,说实话,对我来说,还是蛮期待的,希望对我有所启示。这样的过程持续了半个小时那么年过350岁的程序员还有出路吗?作为一个8年的iOS开发,而且几...

一起学习Avalonia(十二)

可以使用数据模板自定义和显示数据模板模板。文档中介绍了Avalonia的基本数据模板。PublicstringFirstName{get;set;}publicstringLastName{get;set;}扩展使用文档最后介绍了扩展使用,包括2个模型。Student和Teacher。在MainWindowViewModel中创建属性Content。此属性是...

数据库软考易混淆知识之信息化基础、项目管理

2、 关键路径关键路径是活动图中最长的路径示例:图中显示了软件项目的活动图,其中固定点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动持续时间的天数,则完成项目的最短时间为()天,活动EH和IJ的放松时间分别为()日。...