前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Java实战:使用Hutool中的MailUtil实现邮件的发送

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

原创
作者头像
IT技术分享社区
发布2023-11-14 08:40:21
发布2023-11-14 08:40:21
2.8K00
代码可运行
举报
文章被收录于专栏:IT技术分享社区IT技术分享社区
运行总次数:0
代码可运行

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

1、pom.xml 导入依赖包

代码语言:javascript
代码运行次数:0
复制
 <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

代码语言:javascript
代码运行次数:0
复制
# 邮件服务器的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

代码语言:javascript
代码运行次数:0
复制
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://img-blog.csdnimg.cn/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://img-blog.csdnimg.cn/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、预览效果

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、pom.xml 导入依赖包
  • 2、新增邮件配置文件 src/main/resources/config/mail.setting
  • 3、新增测试类 src/main/java/EmailTest.java
  • 4、预览效果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档