Java(83)Java发邮件简单工具类
1、Maven引用
<!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api --><dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId><version>1.6.2</version></dependency><dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version></dependency>
2、Mail工具类:mailUtils
package utils;import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
import java.io.File;
import java.util.*;/*** @author : HMF* className mailUtils* description 邮件工具类* date: 2022/3/13 13:18**/public class mailUtils {/*** 发送简单的文本邮件* @param contentMap 邮件配置和邮件内容*/public static void sendSimpleMail(Map<String, Object> contentMap){//获取系统属性Properties pros = new Properties();pros.setProperty("mail.transport.protocol", "smtp");// 使用的协议pros.setProperty("mail.smtp.host", contentMap.get("host").toString());// 发件人的邮箱的SMTP服务器地址pros.setProperty("mail.smtp.auth", "true");// 需要请求认证//设置邮件服务器Session session = Session.getInstance(pros);//创建默认的MimeMessage 对象MimeMessage msg = new MimeMessage(session);try {//邮件发送人msg.setFrom(contentMap.get("mailFrom").toString());//邮件接收人msg.setRecipients(Message.RecipientType.TO, contentMap.get("mailTo").toString());//邮件标题头msg.setSubject(contentMap.get("mailTittle").toString());//邮件发送日期msg.setSentDate(new Date());//邮件文本内容msg.setContent(contentMap.get("mailContent").toString(), "text/html;charset=UTF-8");//保存邮件msg.saveChanges();Transport.send(msg, contentMap.get("mailFrom").toString(), contentMap.get("passwd").toString());}catch (Exception mex){mex.printStackTrace();}}/*** 发送带有附件的邮件* @param contentMap 邮件配置和邮件内容* @param attachments 邮件附件* @return MimeMessage*/public static void SendAttachMail(Map<String, Object> contentMap, List<File> attachments){//获取系统属性Properties pros = new Properties();pros.setProperty("mail.transport.protocol", "smtp");// 使用的协议pros.setProperty("mail.smtp.host", contentMap.get("host").toString());// 发件人的邮箱的SMTP服务器地址pros.setProperty("mail.smtp.auth", "true");// 需要请求认证//设置邮件服务器Session session = Session.getInstance(pros);// 创建邮件对象MimeMessage mimeMessage = new MimeMessage(session);try {//邮件发送人mimeMessage.setFrom(contentMap.get("mailFrom").toString());//邮件接收人mimeMessage.setRecipients(Message.RecipientType.TO, contentMap.get("mailTo").toString());//邮件主题mimeMessage.setSubject(contentMap.get("mailTittle").toString());//创建多重消息MimeMultipart multipart = new MimeMultipart();//邮件正文BodyPart contentPart = new MimeBodyPart();contentPart.setContent(contentMap.get("mailContent").toString(),"text/html;charset=UTF-8");multipart.addBodyPart(contentPart);//邮件附件if(attachments != null) {for(File attachment : attachments) {BodyPart attachmentPart = new MimeBodyPart();DataSource source = new FileDataSource(attachment);attachmentPart.setDataHandler(new DataHandler(source));//避免中文乱码的处理attachmentPart.setFileName(MimeUtility.encodeWord(attachment.getName()));multipart.addBodyPart(attachmentPart);}}mimeMessage.setContent(multipart,"UTF-8");//保存邮件mimeMessage.saveChanges();Transport.send(mimeMessage, contentMap.get("mailFrom").toString(), contentMap.get("passwd").toString());}catch (Exception mex){mex.printStackTrace();}}
}
3、执行和邮件示例
调用
public class Test{public static void main(String[] args) {//发送方信息配置Map<String,Object> map = new HashMap<>();map.put("host","smtp.exmail.qq.com");map.put("mailFrom","hmf@xxx.com");map.put("passwd","xxx");map.put("mailTo","xxx@qq.com");//标题和内容配置map.put("mailTittle","测试发邮件,邮件主题");map.put("mailContent","测试发邮件,邮件内容");//发送简单邮件sendSimpleMail(map);//附件配置List<File> attaches = new ArrayList<>();File attach1 = new File("./data.csv");File attach2 = new File("./11.log");attaches.add(attach1);attaches.add(attach2);//发送带附件邮件SendAttachMail(map,attaches);}
}
简单邮件示例:
带附件邮件示例:
Java(83)Java发邮件简单工具类相关推荐
- JAVA——Java操作MySQL数据库的简单工具类[CLASS:DatabaseUtil]
预备知识 Java连接MySQL数据库 源代码 package club.zstuca.util;import java.sql.Connection; import java.sql.DriverM ...
- JAVA 邮件发送工具类
1.封装邮件接收地址MODEL和邮件信息MODEL package com.sicdt.jnzxgzc.common.mail.model;import java.io.Serializable; / ...
- Java 基于mail.jar 和 activation.jar 封装的邮件发送工具类
准备工作 发送邮件需要获得协议和支持! 开启服务 POP3/SMTP 服务 如何开启 POP3/SMTP 服务:https://blog.csdn.net/weixin_44953227/articl ...
- Java实现Google的S2算法工具类
WGS84坐标系 GCJ02坐标系 BD09坐标系的各种转换 WGS84坐标系 GCJ02坐标系 BD09坐标系的各种转换 Google S2 经纬度 转 CellId 经纬度 转 cellToken ...
- Java判断不为空的工具类总结
Java判断不为空的工具类总结 1.Java判断是否为空的工具类,可以直接使用.包含,String字符串,数组,集合等等. 1 package com.bie.util; 2 3 import jav ...
- (10)Java泛型-Map集合-集合框架工具类-可变参数-静态导入
-- 部分1.5新特性Java泛型-Map集合-集合框架工具类 泛型 概述: JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制. 对于泛型可以这样理解: 没有使用泛型时,只要是对 ...
- Java学习总结:58(Collections工具类)
Collections工具类 Java提供了一个集合的工具类--Collections,这个工具类可以实现List.Set.Map集合的操作.Collections类的常用方法如下: No. 方法 类 ...
- java配置文件工具类,java项目加载配置文件的工具类
java项目加载配置文件的工具类 package com.loadproperties; import java.io.IOException; import java.io.InputStream; ...
- Java 图片添加数字暗水印工具类
Java 图片添加数字暗水印工具类. package cnki.thesis.common.utils;import org.opencv.core.*;import java.util.ArrayL ...
最新文章
- poj1422(最小路径覆盖问题)
- SAP QM创建一个包含Multiple Specification的检验计划
- Java+Selenium+sikuli script入门使用
- rpg人物制作软件_新机制和随机性的完美结合!新RPG《元素梦境》参上
- LeetCode算法入门- Longest Substring Without Repeating Characters-day4
- Linux 命令(24)—— mv 命令
- Android之Surface/Window/View/SurfaceView区别
- HDU 3072 (强连通分量)
- optuna 自动化调参利器
- httpd2.4.39直接访问路径下的ceb文件,显示乱码
- 在线使用matlab,MATLAB在线版本使用介绍
- 【linux环境sqlplus登录oracle问题: ORA-12162 ORA-12545】
- 计算机三级数据库考试知识点及题库总结(最全)
- 企业网上下单订货管理软件源码搭建功能介绍|移讯云订货通订单管理系统
- 【MAC M1芯片】PS已解决在M1苹果电脑上出现“液化”和WEB等黑屏问题
- python发朋友圈突破朋友圈限制_突破限制!原来朋友圈可以发长达5分钟的视频,后悔没早点知道...
- sap清账使用反记账_【转】SAP反记账功能祥解
- 基于GMM模型的图像分割与颜色迁移算法
- 解决 E45: 'readonly' option is set (add ! to override)
- 关于python循环结构错误的是_以下关于Python的循环结构说法错误的是(_____)。...