Springboot拓展之整合邮件 JavaMail的使用与实操

简介: Springboot拓展之整合邮件 JavaMail的使用与实操

邮件

电子邮件仍然是我们企业间交往的一种非常常见的方式

发送简单邮件

第一步首先导入坐标

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

这个依赖使我们去springboot的

版本适配依赖库里去找的

这里面写了规范

很多依赖的坐标

可以直接导入 而不会出现版本冲突的问题

第二步做配置

我们要去邮箱客户端进行配置

在yml文件里配置了用户名 密码 还有供应商

还有传输协议

spring:
  mail:
    username: 1732446549@qq.com
    password: 123456
    host: smtp.qq.com

接下来我们要进行具体操作

我们首先做一个核心业务层接口

package com.bigdata1421.mail.service;
 
import org.springframework.stereotype.Service;
 
@Service
public interface SendMailService {
 
    void sendMail();
 
}

接下来写业务层接口的实现类

我们这个时候要注入一个JavaMailSender对象

通过JavaMailSender对象发送邮件

package com.bigdata1421.mail.service.impl;
 
import com.bigdata1421.mail.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
 
import javax.annotation.Resource;
 
public class sendMailServiceImpl implements SendMailService {
 
    @Resource
    private JavaMailSender javaMailSender;
 
    @Override
    public void sendMail() {
        SimpleMailMessage message=new SimpleMailMessage();
        javaMailSender.send(message);
    }
 
}

我们查看一下页面模型

我们程序中要有四个信息

然后设置

即可

package com.bigdata1421.mail.service.impl;
 
import com.bigdata1421.mail.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
 
import javax.annotation.Resource;
 
public class sendMailServiceImpl implements SendMailService {
 
    @Resource
    private JavaMailSender javaMailSender;
 
    //发送人
    private String from="123@qq.com";
    //接收人
    private String to="456@qq.com";
    //标题
    private String subject="测试文件";
    //正文
    private String context="正文内容";
 
    @Override
    public void sendMail() {
        SimpleMailMessage message=new SimpleMailMessage();
 
        message.setFrom(from);
        message.setTo(to);
        message.setSubject(subject);
        message.setText(context);
        
        javaMailSender.send(message);
    }
 
}

我们进行一个测试

在测试中注入业务层接口

调用接口方法 sendMail

package com.bigdata1421.mail;
 
import com.bigdata1421.mail.service.SendMailService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
 
@SpringBootTest
class MailApplicationTests {
 
    @Autowired
    private SendMailService sendMailService;
 
    @Test
    void contextLoads() {
        sendMailService.sendMail();
    }
 
}

发送多封邮件

大概是这样

package com.bigdata1421.mail.service.impl;
 
import com.bigdata1421.mail.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.*;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.annotation.Resource;
 
public class sendMailServiceImpl implements SendMailService {
 
    @Resource
    private JavaMailSender javaMailSender;
 
    //发送人
    private String from="123@qq.com";
    //接收人
    private String to="456@qq.com";
    //标题
    private String subject="测试文件";
    //正文
    private String context="正文内容";
 
    @Override
    public void sendMail() {
 
        try {
            MimeMessage message = javaMailSender.createMimeMessage();
            MimeMessageHelper helper=new MimeMessageHelper(message);
            helper.setFrom(from);
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(context);
 
            javaMailSender.send(message);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
}

如果我们对正文内容进行格式解析html

我们要加入重载参数 true

那我们如何发送附件呢

用File类就行

这就是发送邮件和发送附件

但是这样还不够

我们还是要打开一个开关

就能成功接收

发送附件的核心

在于包装一下应用类

目录
相关文章
|
11月前
|
JavaScript 前端开发 Java
垃圾分类管理系统基于 Spring Boot Vue 3 微服务架构实操指南
本文介绍了基于Java技术的垃圾分类管理系统开发方案与实施案例。系统采用前后端分离架构,后端使用Spring Boot框架搭配MySQL数据库,前端可选择Vue.js或Java Swing实现。核心功能模块包括垃圾分类查询、科普教育、回收预约等。文中提供了两个典型应用案例:彭湖花园小区使用的Swing桌面系统和基于Spring Boot+Vue的城市管理系统,分别满足不同场景需求。最新技术方案升级为微服务架构,整合Spring Cloud、Redis、Elasticsearch等技术,并采用Docker容器
640 1
|
10月前
|
前端开发 Java 数据库连接
SpringBoot参数校验底层原理和实操。深度历险、深度解析(图解+秒懂+史上最全)
SpringBoot参数校验底层原理和实操。深度历险、深度解析(图解+秒懂+史上最全)
SpringBoot参数校验底层原理和实操。深度历险、深度解析(图解+秒懂+史上最全)
|
10月前
|
Java 数据库连接 API
Java 8 + 特性及 Spring Boot 与 Hibernate 等最新技术的实操内容详解
本内容涵盖Java 8+核心语法、Spring Boot与Hibernate实操,按考试考点分类整理,含技术详解与代码示例,助力掌握最新Java技术与应用。
311 2
|
10月前
|
前端开发 Java API
酒店管理系统基于 JavaFX Spring Boot 和 React 经典项目重构实操
本文介绍了基于现代技术栈的酒店管理系统开发方案,整合了JavaFX、Spring Boot和React三大技术框架。系统采用前后端分离架构,JavaFX构建桌面客户端,React开发Web管理界面,Spring Boot提供RESTful API后端服务。核心功能模块包括客房管理和客户预订流程,文中提供了JavaFX实现的客房管理界面代码示例和React开发的预订组件代码,展示了如何实现客房信息展示、添加修改操作以及在线预订功能。
666 1
|
前端开发 JavaScript Java
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
本文介绍了一个结合SpringBoot和Python的实用功能,旨在监控iPhone 15的库存状态并通过邮件提醒用户。系统采用SpringBoot监听苹果官网API,解析JSON数据判断是否有货,并展示最近的库存记录。此外,还能自动触发Selenium+Python脚本实现自动化购买。文中详细介绍了技术栈、接口分析、邮件配置及自动化脚本的设置方法。该项目不仅适用于熟悉后端开发的人员,也适合回顾Layui和Jquery等前端技术。
471 0
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
|
11月前
|
Java API 微服务
Java 21 与 Spring Boot 3.2 微服务开发从入门到精通实操指南
《Java 21与Spring Boot 3.2微服务开发实践》摘要: 本文基于Java 21和Spring Boot 3.2最新特性,通过完整代码示例展示了微服务开发全流程。主要内容包括:1) 使用Spring Initializr初始化项目,集成Web、JPA、H2等组件;2) 配置虚拟线程支持高并发;3) 采用记录类优化DTO设计;4) 实现JPA Repository与Stream API数据访问;5) 服务层整合虚拟线程异步处理和结构化并发;6) 构建RESTful API并使用Springdoc生成文档。文中特别演示了虚拟线程配置(@Async)和StructuredTaskSco
1191 0
|
消息中间件 缓存 监控
【Java笔记+踩坑】SpringBoot基础3——开发。热部署+配置高级+整合NoSQL/缓存/任务/邮件/监控
springboot的热部署、配置的宽松绑定和校验、任务、邮件、监控、springboot整合JdbcTemplate,h2等sql技术、整合redis,mongodb,es等nosql技术、整合redis,Memcached,jetcache,j2cache等缓存技术、整合ActiveMQ,RabbitMQ,RocketMQ,Kafka等消息的中间件的入门、整合缓存/任务/邮件/监控
【Java笔记+踩坑】SpringBoot基础3——开发。热部署+配置高级+整合NoSQL/缓存/任务/邮件/监控
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的邮件过滤系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的邮件过滤系统的详细设计和实现(源码+lw+部署文档+讲解等)
161 2
|
安全 Java Maven
在 Spring Boot 中实现邮件发送功能可以通过集成 Spring Boot 提供的邮件发送支持来完成
在 Spring Boot 中实现邮件发送功能可以通过集成 Spring Boot 提供的邮件发送支持来完成
565 2
|
存储 NoSQL Redis
基于SpringBoot+Redis实现点赞/排行榜功能,可同理实现收藏/关注功能,可拓展实现共同好友/共同关注/关注推送功能
在SpringBoot项目中使用Redis的Set和ZSet集合实现点赞和排行榜功能,并通过示例代码展示了如何使用`stringRedisTemplate`操作Redis来完成这些功能。
1148 0