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类就行

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

但是这样还不够

我们还是要打开一个开关

就能成功接收

发送附件的核心

在于包装一下应用类

目录
相关文章
|
3月前
|
前端开发 JavaScript Java
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
本文介绍了一个结合SpringBoot和Python的实用功能,旨在监控iPhone 15的库存状态并通过邮件提醒用户。系统采用SpringBoot监听苹果官网API,解析JSON数据判断是否有货,并展示最近的库存记录。此外,还能自动触发Selenium+Python脚本实现自动化购买。文中详细介绍了技术栈、接口分析、邮件配置及自动化脚本的设置方法。该项目不仅适用于熟悉后端开发的人员,也适合回顾Layui和Jquery等前端技术。
53 0
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
消息中间件 缓存 监控
116 0
|
3月前
|
存储 NoSQL Redis
基于SpringBoot+Redis实现点赞/排行榜功能,可同理实现收藏/关注功能,可拓展实现共同好友/共同关注/关注推送功能
在SpringBoot项目中使用Redis的Set和ZSet集合实现点赞和排行榜功能,并通过示例代码展示了如何使用`stringRedisTemplate`操作Redis来完成这些功能。
295 0
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的邮件过滤系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的邮件过滤系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
5月前
|
安全 Java Maven
在 Spring Boot 中实现邮件发送功能可以通过集成 Spring Boot 提供的邮件发送支持来完成
在 Spring Boot 中实现邮件发送功能可以通过集成 Spring Boot 提供的邮件发送支持来完成
55 2
|
5月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的邮件过滤系统的详细设计和实现
基于SpringBoot+Vue的邮件过滤系统的详细设计和实现
59 1
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的邮件过滤系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的邮件过滤系统附带文章源码部署视频讲解等
33 0
|
4月前
|
Java API Spring
Spring Boot中如何实现邮件发送功能
Spring Boot中如何实现邮件发送功能
|
5月前
|
Java API Spring
Spring Boot中如何实现邮件发送功能
Spring Boot中如何实现邮件发送功能
|
5月前
|
Java
springboot使用邮件服务
springboot使用邮件服务
106 0