阿里邮箱发送带excel附件邮件

embedded/2024/12/3 7:27:30/

导包

java"><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version>
</dependency>

内容

java">调用
EmilUtil.sendEmail("xxxx@163.com",host,username,password,port,excelFile,"主题",content);

 工具类

java">package com.ruoyi.common.utils.emil;import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.spring5.SpringTemplateEngine;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.io.File;
import java.security.Security;
import java.util.Map;
import java.util.Properties;public class EmilUtil {public static void sendEmail(String toEmail, String host, String username, String password,String port, File file, String bt, String contentXML) {try {Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";Properties props = System.getProperties();props.setProperty("mail.smtp.host", host);props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);props.setProperty("mail.smtp.socketFactory.fallback", "false");//设置端口props.setProperty("mail.smtp.port", port);//启用调试props.setProperty("mail.debug", "true");props.setProperty("mail.smtp.socketFactory.port", port);props.setProperty("mail.smtp.auth", "true");//建立邮件会话Session session = Session.getDefaultInstance(props, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(username, password);}});//建立邮件对象MimeMessage message = new MimeMessage(session);//设置邮件的发件人、收件人、主题//发件人账号message.setFrom(new InternetAddress(username));//收件人账号message.setRecipients(Message.RecipientType.TO, toEmail);//邮件标题message.setSubject(bt);//内容Multipart multipart = new MimeMultipart();BodyPart contentPart = new MimeBodyPart();//邮件内容contentPart.setContent(contentXML, "text/html;charset=utf-8");multipart.addBodyPart(contentPart);message.setContent(multipart);//附件// 创建消息部分BodyPart messageBodyPart = new MimeBodyPart();DataSource source = new FileDataSource(file);messageBodyPart.setDataHandler(new DataHandler(source));messageBodyPart.setFileName(file.getName());multipart.addBodyPart(messageBodyPart);message.saveChanges();Transport.send(message);} catch (Exception e) {e.printStackTrace();}}}

配置

java">//注意阿里邮箱设置设置第三方权限验证则无法验证通过    
mail:host: smtp.qiye.aliyun.comport: 465username: xxx@aliyun.compassword: xxxx@#123465


http://www.ppmy.cn/embedded/142538.html

相关文章

axios的认识与基本使用

axios简介 Axios 是一个基于 promise 网络请求库&#xff0c;作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。 主要特点 从浏览器创建 XML…

DOCKER学习总结

这里写目录标题 一、Docker安装1.1 在线安装1.2 离线安装安装配置启动服务 1.3 配置镜像1.4 Docker启动相关命令 二、Docker三大核心概念2.1 镜像2.2 容器2.3 仓库2.3.1 公有仓库2.3.2 私有仓库 二、容器与虚拟机比较 一、Docker安装 1.1 在线安装 查看是否安装dockeryum lis…

【Robocasa】Code Review

文章目录 OverviewalgoInitializationImportant Class MethodsTrain LoopTest Time ConfigsdemoConfig FactoryConfig StructureConfig Locking默认锁定状态配置修改的上下文管理器 dataset示例数据集对象参数说明 model基础模块EncoderCoreVisualCoreScanCore随机化器 (Random…

VINS_MONO视觉导航算法【二】论文讲解+GPU实现调研

文章目录 其他文章说明论文系统特点和创新点鲁棒的初始化紧耦合优化的视觉惯性里程计&#xff08;VIO&#xff09;回环检测与重定位4自由度姿态图优化 视觉和IMU测量的预处理步骤视觉测量预处理特征跟踪特征点处理关键帧选择 IMU测量预处理IMU噪声和偏差预积分偏差校正 单目紧密…

详解MyBatis之篇一

目录 MyBatis 定义 使用MyBatis操作数据库 创建项目 配置 演示 UserInfo.java UserInfoMapper UserInfoMapperTest 数据准备 自动生成测试类 运行结果 MyBatis 定义 MyBatis 是一个优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避…

基于群晖搭建个人图书架-TaleBook based on Docker

前言 在群晖Container Manager中部署失败&#xff0c;转通过ssh部署。 一、准备工作 名称备注群晖SSH“终端机和SNMP”中启用SSH软件secureCRT等docker-compose.ymlGithub下载并修改 二、过程 2.1 创建本地文件夹 本地路径为&#xff1a; /docker/Calibre/data 2.2 下载d…

22智能 图

例题 根据下列顶点之间的关系&#xff0c;画出相应的图结构 A -> B, C, D B -> A, C, C -> A, D, E, D -> B, E, E -> C, 数据结构&#xff1a;使用邻接表表示图&#xff0c;每个顶点有一个链表来存储与它相邻的顶点。 功能&#xff1a; 创建图。 添加边。 打…

S4 UPA of AA :新资产会计概览

通用并行会计&#xff08;Universal Parallel Accounting&#xff09;可以支持每个独立的分类账与其他模块集成&#xff0c;UPA主要是为了支持平行评估、多货币类型、财务合并、多准则财务报告的复杂业务需求 在ML层面UPA允许根据不同的分类账规则对物料进行评估&#xff0c;并…