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

举报
IT技术分享社区 发表于 2023/01/30 21:39:53 2023/01/30
【摘要】 今天给大家分享使用Hutool中的MailUtil实现邮件的发送,主要实现了发送普通文本邮件、发送Html文件、发送邮件包含本地附件、远程下载附件、指定多个发件人的功能。


今天给大家分享使用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

# 邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>可以自定义
host = smtp.qq.com
# 邮件服务器的SMTP端口,可选,默认25  465
port = 587
# 发件人邮箱地址
from = 431xxxxxx@qq.com
# 用户名,默认为发件人邮箱前缀
user = xxxxxxxxx
# 密码(注意,某些邮箱需要为SMTP服务单独设置授权码 比如QQ邮箱)
pass = xxxxxxxxxxxxxx
#使用 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("xxxx@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("xxxxx@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("hgmyz@outlook.com", "Html邮件测试", html, true,file1,file2,file3);
    }

    /**
     * 发送邮件指定多个收件人
     */
    private static void EmailMulit() {

        // 设置发送人员列表
        List<String> sendList=new ArrayList<>();
        sendList.add("xxxxxxxxx@163.com");
        sendList.add("xxxxxx@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、预览效果



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。