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

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

但是这样还不够

我们还是要打开一个开关

就能成功接收

发送附件的核心

在于包装一下应用类

目录
相关文章
|
8天前
|
安全 Java Maven
在 Spring Boot 中实现邮件发送功能可以通过集成 Spring Boot 提供的邮件发送支持来完成
在 Spring Boot 中实现邮件发送功能可以通过集成 Spring Boot 提供的邮件发送支持来完成
17 2
|
15天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的邮件过滤系统的详细设计和实现
基于SpringBoot+Vue的邮件过滤系统的详细设计和实现
15 1
|
1天前
|
Java 机器人 程序员
Spring Boot中如何实现邮件发送功能
Spring Boot中如何实现邮件发送功能
|
4天前
|
Java
springboot使用邮件服务
springboot使用邮件服务
11 0
|
7天前
|
XML 前端开发 Java
基于Springboot的web后端开发三层架构上手实操
基于Springboot的web后端开发三层架构上手实操
11 0
|
1月前
|
Java API 数据安全/隐私保护
【亮剑】如何在Java项目中结合Spring框架实现邮件发送功能
【4月更文挑战第30天】本文介绍了如何在Java项目中结合Spring框架实现邮件发送功能。首先,需在`pom.xml`添加Spring和JavaMail依赖。然后,在`applicationContext.xml`配置邮件发送器,包括SMTP服务器信息。接着,创建一个使用依赖注入的`EmailService`类,通过`JavaMailSender`发送邮件。最后,调用`EmailService`的`sendSimpleEmail`方法即可发送邮件。最佳实践包括:使用配置管理敏感信息,利用`MimeMessage`构造复杂邮件,异常处理和日志记录,以及在大量发送时考虑使用邮件队列。
|
1月前
|
JSON 前端开发 安全
Springboot整合邮件服务
Springboot整合邮件服务
|
1月前
|
Java Spring
使用spring实现邮件的发送(含测试,源码,注释)
使用spring实现邮件的发送(含测试,源码,注释)
|
6月前
|
消息中间件 存储 NoSQL
SpringBoot项目整合Redis,Rabbitmq发送、消费、存储邮件
SpringBoot项目整合Redis,Rabbitmq发送、消费、存储邮件
601 3
|
1月前
|
Java
SpringBoot原理分析 | 任务:异步、邮件、定时
SpringBoot原理分析 | 任务:异步、邮件、定时
70 0