Java实战:使用Hutool中的MailUtil实现邮件的发送

简介: 今天给大家分享使用Hutool中的MailUtil实现邮件的发送,主要实现了发送普通文本邮件、发送Html文件、发送邮件包含本地附件、远程下载附件、指定多个发件人的功能。具体的大家可以互相沟通交流!

24be4df6bdebfbeb143fe5130e9b5909.jpg


今天给大家分享使用Hutool中的MailUtil实现邮件的发送,主要实现了发送普通文本邮件、发送Html文件、发送邮件包含本地附件、远程下载附件、指定多个发件人的功能。具体的大家可以互相沟通交流!

1、pom.xml 导入依赖包



<dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>
        <!--邮件依赖包-->
        <dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
            <version>1.6.2</version>
        </dependency>



2、新增邮件配置文件 src/main/resources/config/mail.setting


需要新增mail.setting配置文件,配置对应的发件邮箱信息和相应的参数,这里用qq邮箱为案例。具体的可以参照配置的注释。

# 邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>可以自定义
host = smtp.qq.com
# 邮件服务器的SMTP端口,可选,默认25  465
port = 587
# 发件人邮箱地址
from = xxxxxxxx@qq.com
# 用户名,默认为发件人邮箱前缀
user = xxxxxxxxx
# 密码(注意,某些邮箱需要为SMTP服务单独设置授权码 比如QQ邮箱)
pass = xxxxxxxxxxxxxxxxxxxxxx
#使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展
starttlsEnable = true
# 需要设置为false 否则QQ邮箱测试邮件发送报错
sslEnable = false



注意:针对sslEnable 一定要设置为 false,否则会报错。亲测问题。


3、新增测试类 src/main/java/EmailTest.java

里面的代码注释比较详细,大家参考注释就能很好的理解。


import cn.hutool.extra.mail.MailAccount;
import cn.hutool.extra.mail.MailUtil;
import cn.hutool.http.HttpUtil;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * @author haogm
 * @ClassName EmailTest
 * @description: TODO
 * @datetime 2023年 01月 06日 14:07
 * @version: 1.0
 */
public class EmailTest {
    public static void main(String[] args) {
        // 发送普通文本文件
        EmailTxt();
        // 发送HTml内容的邮件,包含附件
        EmailHtml();
        // 指定多个收件人邮件
        EmailMulit();
    }
    /**
     * 发送普通文本邮件
     */
    private static void EmailTxt() {
        MailUtil.send("xxxxxxxx@outlook.com", "文本邮件测试", "IT技术分享社区,一个有态度的互联网分享平台!", false);
    }
    /**
     *  发送包含html的邮件
     */
    private static void EmailHtml() {
        String html = "<h2>Html邮件测试</h2><p>IT技术分享社区,一个有态度的互联网分享平台!</p><div><img alt='' src='https://ucc.alicdn.com/images/user-upload-01/img_convert/dcf12652858aeceab6d38d53a1fb5d7f.jpeg' /></div>";
        //MailUtil.send("xxxxxxxx@outlook.com", "Html邮件测试", html, true);
        // 添加附件
        List<File> fileList = new ArrayList<>();
        File file1=new File("D:\\Test.xlsx");
        File file2=new File("D:\\image.png");
        // 通过远程url下载文件
        File file3=GetUrl("https://ucc.alicdn.com/images/user-upload-01/img_convert/aaad05ecfba45b824bac3e24907e7abf.png","D:\\远程下载图片1.png");
        // 多个附件参数直接往后面追加即可
        MailUtil.send("xxxxxxxxx@outlook.com", "Html邮件测试", html, true,file1,file2,file3);
    }
    /**
     * 发送邮件指定多个收件人
     */
    private static void EmailMulit() {
        // 设置发送人员列表
        List<String> sendList=new ArrayList<>();
        sendList.add("xxxxxxx@outlook.com");
        sendList.add("xxxxxxxxx@qq.com");
        MailUtil.send(sendList, "文本邮件测试", "IT技术分享社区,一个有态度的互联网分享平台!", false);
    }
    /**
     *
     * @param url 下载地址
     * @param filePath 下载后的存储文件路径
     * @return 根据url直接下载文件作为上传的附件
     */
    private  static  File GetUrl(String url,String filePath)
    {
       return HttpUtil.downloadFileFromUrl(url,filePath);
    }
}



4、预览效果

image.png



相关文章
|
20天前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
150 0
|
2月前
|
Java 关系型数据库 数据库
Java 项目实战教程从基础到进阶实战案例分析详解
本文介绍了多个Java项目实战案例,涵盖企业级管理系统、电商平台、在线书店及新手小项目,结合Spring Boot、Spring Cloud、MyBatis等主流技术,通过实际应用场景帮助开发者掌握Java项目开发的核心技能,适合从基础到进阶的学习与实践。
230 3
|
2月前
|
缓存 前端开发 Java
基于最新 Java 技术栈的在线任务管理系统开发实战详解
本项目基于最新Java技术栈开发在线任务管理系统,涵盖任务创建、分配、跟踪、统计等功能。采用Spring Boot 3.2.x、React 18、PostgreSQL 16等主流技术,详解项目架构设计、核心功能实现及部署流程,助力掌握现代Java全栈开发技能。
139 6
|
2月前
|
Java API Maven
2025 Java 零基础到实战最新技术实操全攻略与学习指南
本教程涵盖Java从零基础到实战的全流程,基于2025年最新技术栈,包括JDK 21、IntelliJ IDEA 2025.1、Spring Boot 3.x、Maven 4及Docker容器化部署,帮助开发者快速掌握现代Java开发技能。
464 1
|
17天前
|
Java 开发者
Java并发编程:CountDownLatch实战解析
Java并发编程:CountDownLatch实战解析
308 100
|
2月前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
169 7
|
2月前
|
数据采集 JSON Java
Java爬虫获取1688店铺所有商品接口数据实战指南
本文介绍如何使用Java爬虫技术高效获取1688店铺商品信息,涵盖环境搭建、API调用、签名生成及数据抓取全流程,并附完整代码示例,助力市场分析与选品决策。
|
2月前
|
消息中间件 Java 数据库
Java 基于 DDD 分层架构实战从基础到精通最新实操全流程指南
本文详解基于Java的领域驱动设计(DDD)分层架构实战,结合Spring Boot 3.x、Spring Data JPA 3.x等最新技术栈,通过电商订单系统案例展示如何构建清晰、可维护的微服务架构。内容涵盖项目结构设计、各层实现细节及关键技术点,助力开发者掌握DDD在复杂业务系统中的应用。
345 0
|
3月前
|
监控 Java API
现代 Java IO 高性能实践从原理到落地的高效实现路径与实战指南
本文深入解析现代Java高性能IO实践,涵盖异步非阻塞IO、操作系统优化、大文件处理、响应式网络编程与数据库访问,结合Netty、Reactor等技术落地高并发应用,助力构建高效可扩展的IO系统。
97 0
|
3月前
|
安全 Java 网络安全
Java 实现 SMTP 协议调用的详细示例及实战指南 SMTP Java 调用示例
本文介绍了如何使用Java调用SMTP协议发送邮件,涵盖SMTP基本概念、JavaMail API配置、代码实现及注意事项,适合Java开发者快速掌握邮件发送功能集成。
245 0