java mail类_Java Mail工具类
/*
* http://www.daimami.com
****************************************************************************
* 源文件名: MailUtil.java
* 功能: 功能概述
* 版本: @version 1.0
* 编制日期: May 27, 2012
* 说明: 主要功能描述
* 修改历史: (主要历史变动原因及说明)
* May 27, 2012 | Aloys | Change Description
* May 27, 2012 | Aloys | Created
*/
package com.aloys.framework.util;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
/**
* 通过QQ企业邮箱发送密码找回邮件
*
* @author aloys
*/
public class MailUtil {
private static String fromMail = "yourMail";
private static String fromPass = "yourMailPass";
/**
* 发送邮件
*
* @param email
* @param title
* @param content
*/
public static void sendMail(String email, String title, String content,
String nickName) {
try {
// 建立邮件会话
Properties props = new Properties();
// 存储发送邮件服务器的信息
props.put("mail.smtp.host", "smtp.exmail.qq.com");
// 同时通过验证
props.put("mail.smtp.auth", "true");
// 根据属性新建一个邮件会话
Session mailSession = Session.getInstance(props);
// 由邮件会话新建一个消息对象
MimeMessage message = new MimeMessage(mailSession);
// 设置邮件
InternetAddress from = new InternetAddress(javax.mail.internet.MimeUtility.encodeText(nickName)+ "");
// 设置发件人的地址
message.setFrom(from);
// 设置收件人,并设置其接收类型为TO
InternetAddress to = new InternetAddress(email);
message.setRecipient(Message.RecipientType.TO, to);
// 设置标题
message.setSubject(title);
// 设置信件内容
Multipart mp = new MimeMultipart();
MimeBodyPart mbp1 = new MimeBodyPart();
// 设置内容
mbp1.setText(content);
mp.addBodyPart(mbp1);
// 设置附件
message.setContent(mp, "text/html;charset=GBK");
// 设置发信时间
message.setSentDate(new Date());
// 存储邮件信息
message.saveChanges();
// 发送邮件
Transport transport = mailSession.getTransport("smtp");
// 以smtp方式登录邮箱,第一个参数是发送邮件用的邮件服务器SMTP地址,第二个参数为用户名,第三个参数为密码
transport.connect("smtp.exmail.qq.com", fromMail, fromPass);
// 发送邮件,其中第二个参数是所有已设好的收件人地址
transport.sendMessage(message, message.getAllRecipients());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 发送
*
* @param email
* @param title
* @param htmlContent
* @param nickName
*/
public static void sendHTMLMail(String [] emails, String title,
String htmlContent, String nickName) {
try {
// 建立邮件会话
Properties props = new Properties();
// 存储发送邮件服务器的信息
props.put("mail.smtp.host", "smtp.exmail.qq.com");
// 同时通过验证
props.put("mail.smtp.auth", "true");
// 根据属性新建一个邮件会话,并且加入账户验证
Session mailSession = Session.getInstance(props,new Authenticator(){
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(fromMail,fromPass);
}
});
// 由邮件会话新建一个消息对象
MimeMessage mailMessage = new MimeMessage(mailSession);
// 设置邮件
InternetAddress from = new InternetAddress(javax.mail.internet.MimeUtility.encodeText(nickName)+ "");
// 设置发件人的地址
mailMessage.setFrom(from);
// 创建邮件的接收地址(数组)
InternetAddress [] sendTo = new InternetAddress[emails.length];
for (int i = 0; i < emails.length; i++) {
sendTo[i] = new InternetAddress(emails[i]);
}
mailMessage.setRecipients(javax.mail.internet.MimeMessage.RecipientType.TO, sendTo);
// 设置邮件消息的主题
mailMessage.setSubject(title);
// 设置邮件消息发送的时间
mailMessage.setSentDate(new Date());
// MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
Multipart mainPart = new MimeMultipart();
// 创建一个包含HTML内容的MimeBodyPart
BodyPart html = new MimeBodyPart();
// 设置HTML内容 建立第一部分: 文本正文
html.setContent(htmlContent, "text/html; charset=utf-8");
mainPart.addBodyPart(html);
// 将MiniMultipart对象设置为邮件内容 建立第二部分:附件
mailMessage.setContent(mainPart);
// if (mailInfo.getAttachFileNames().length > 0) {
// for (int i = 0; i < mailInfo.getAttachFileNames().length; i++) {
// if (!mailInfo.getAttachFileNames()[i].equals("")) {
// // 建立第二部分:附件
// html = new MimeBodyPart();
// // 获得附件
// DataSource source = new FileDataSource(mailInfo
// .getAttachFileNames()[i]);
// // 设置附件的数据处理器
// html.setDataHandler(new DataHandler(source));
// // 设置附件文件名
// html.setFileName(mailInfo.getAttachFileNames()[i]);
// // 加入第二部分
// mainPart.addBodyPart(html);
// }
// }
// }
// Transport transport = mailSession.getTransport("smtp");
// // 以smtp方式登录邮箱,第一个参数是发送邮件用的邮件服务器SMTP地址,第二个参数为用户名,第三个参数为密码
// transport.connect("smtp.exmail.qq.com", fromMail, fromPass);
// 发送邮件
Transport.send(mailMessage);
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
java mail类_Java Mail工具类相关推荐
- java 加减乘除 工具类_Java数学工具类MathUtil详解
package cn.xbz.util.math; import java.math.BigDecimal; /** * @title 数学计算工具类 * @description 提供常用的数值加减 ...
- java堆排序工具包_JAVA 排序工具类
提供了以下排序:冒泡排序 选择排序 插入排序 希尔排序 快速排序 归并排序 桶排序 堆排序 package com.xingej.algorithm.sort;import java.util.Arr ...
- java pdf工具类_Java PDF工具类(一)| 使用 itextpdf 根据PDF模板生成PDF(文字和图片)...
Java PDF工具类(一)| 使用 itextpdf 根据设置好的PDF模板填充PDF(文字和图片) 相关文章: Java PDF工具类(二)| 使用 wkhtmltox 实现 HTML转PDF(文 ...
- java 导入excel工具类_java Excel工具类,导入导出Excel数据
java Excel工具类,导入导出Excel数据,导入数据对合并表格有判断获取数据: 导出数据到Excel,Excel文件不存在会创建. 使用的是poi处理,兼容Excel. 对反射不够理解,目前先 ...
- java 时间戳 工具类_JAVA时间戳工具类
整理一个时间戳的工具类 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Dat ...
- java sort类_JAVA Collections工具类sort()排序方法
主要分析内容: 一.Collections工具类两种sort()方法 二.示例 一.Collections工具类两种sort()方法 格式一: public static > void sort ...
- md5 java 工具类_Java常用工具类——MD5
importorg.apache.commons.codec.binary.Hex;importjava.nio.charset.Charset;importjava.security.Message ...
- java 反射 接口工具类_Java 反射工具类 ReflectionUtils
import lombok.extern.slf4j.Slf4j; import java.lang.reflect.*; /** * 反射的 Utils 函数集合 * 提供访问私有变量, 获取泛型类 ...
- java ssh工具类_JAVA SSH2工具类
计划 ssh2utils connection 常规session操作 未完成 常规scf操作 未完成 简介 使用java进行ssh 操作,执行脚本,scp文件的包装 依赖 com.trilead t ...
- java转换工具类_Java数据转换工具类
前段时间有个项目是通过报文协议与硬件进行交互,在实现的过程中整理了一些通用的数据转换方法,方便项目的使用,特此记录一下,具体实现如下,如有需要的可以参考一下,希望会有帮助...... /** * by ...
最新文章
- python能在生活中做什么-python能做哪些生活有趣的事情
- ArcGIS Javascript查询数据库并添加到地图上
- 解决Fedora 自己编译的内核不能运行Virtualbox的问题。
- 【通知】有三AI固态硬盘最后一次补货,再增3套视频!
- 闵可夫斯基和(Mincowsky sum)
- [转]详细介绍java中的数据结构
- java中的23种设计模式_Java开发中的23种设计模式详解
- 思科:2022年视频将占移动通信流量79%
- 新鲜出炉!大规模神经网络最新综述!
- docker镜像创建与优化
- vim中实现javascript代码自动完成功能
- Intel Core Enhanced Core架构/微架构/流水线 (2) - 代表处理器
- sql数据库 订阅发布_如何使用中央发布者和多个订阅者数据库设置自定义SQL Server事务复制
- 对抗攻击经典论文剖析(上)【FGSM、BIM、PGD、Carlini and Wagner Attacks (CW)】
- java - 操作系统 Linux
- 开源资产管理软件OCS Inventory 实践
- Pytorch forward方法调用原理
- archpr说文件不是rar文件_PDF压缩 | 从此PDF“文件过大”再也不是难题
- 解决如何打开端口的问题
- mysql定时任务,每天凌晨1点执行
热门文章
- win7添加ftp到计算机,技术编辑帮你win7系统FTP地址添加到资源管理器的收藏夹下的设置步骤...
- 干货!高速串行Serdes均衡之FFE
- linux内存占用过高怎么解决,centos7内存占用过高处理方法
- 游戏光枪坐标定位原理及算法
- 科学道德与学风-2021雨课堂答案-第9章
- 掌握生成对抗网络(GANs),召唤专属二次元老婆(老公)不是梦
- laravel broadcas广播
- 给大家分享几款浪漫的唯美APP
- ggplot2如何在R语言中绘制表格
- 如何将excel表格导入word_PPT怎样导入Excel表格?PPT导入Excel表格方法