/*

* 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工具类相关推荐

  1. java 加减乘除 工具类_Java数学工具类MathUtil详解

    package cn.xbz.util.math; import java.math.BigDecimal; /** * @title 数学计算工具类 * @description 提供常用的数值加减 ...

  2. java堆排序工具包_JAVA 排序工具类

    提供了以下排序:冒泡排序 选择排序 插入排序 希尔排序 快速排序 归并排序 桶排序 堆排序 package com.xingej.algorithm.sort;import java.util.Arr ...

  3. java pdf工具类_Java PDF工具类(一)| 使用 itextpdf 根据PDF模板生成PDF(文字和图片)...

    Java PDF工具类(一)| 使用 itextpdf 根据设置好的PDF模板填充PDF(文字和图片) 相关文章: Java PDF工具类(二)| 使用 wkhtmltox 实现 HTML转PDF(文 ...

  4. java 导入excel工具类_java Excel工具类,导入导出Excel数据

    java Excel工具类,导入导出Excel数据,导入数据对合并表格有判断获取数据: 导出数据到Excel,Excel文件不存在会创建. 使用的是poi处理,兼容Excel. 对反射不够理解,目前先 ...

  5. java 时间戳 工具类_JAVA时间戳工具类

    整理一个时间戳的工具类 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Dat ...

  6. java sort类_JAVA Collections工具类sort()排序方法

    主要分析内容: 一.Collections工具类两种sort()方法 二.示例 一.Collections工具类两种sort()方法 格式一: public static > void sort ...

  7. md5 java 工具类_Java常用工具类——MD5

    importorg.apache.commons.codec.binary.Hex;importjava.nio.charset.Charset;importjava.security.Message ...

  8. java 反射 接口工具类_Java 反射工具类 ReflectionUtils

    import lombok.extern.slf4j.Slf4j; import java.lang.reflect.*; /** * 反射的 Utils 函数集合 * 提供访问私有变量, 获取泛型类 ...

  9. java ssh工具类_JAVA SSH2工具类

    计划 ssh2utils connection 常规session操作 未完成 常规scf操作 未完成 简介 使用java进行ssh 操作,执行脚本,scp文件的包装 依赖 com.trilead t ...

  10. java转换工具类_Java数据转换工具类

    前段时间有个项目是通过报文协议与硬件进行交互,在实现的过程中整理了一些通用的数据转换方法,方便项目的使用,特此记录一下,具体实现如下,如有需要的可以参考一下,希望会有帮助...... /** * by ...

最新文章

  1. python能在生活中做什么-python能做哪些生活有趣的事情
  2. ArcGIS Javascript查询数据库并添加到地图上
  3. 解决Fedora 自己编译的内核不能运行Virtualbox的问题。
  4. 【通知】有三AI固态硬盘最后一次补货,再增3套视频!
  5. 闵可夫斯基和(Mincowsky sum)
  6. [转]详细介绍java中的数据结构
  7. java中的23种设计模式_Java开发中的23种设计模式详解
  8. 思科:2022年视频将占移动通信流量79%
  9. 新鲜出炉!大规模神经网络最新综述!
  10. docker镜像创建与优化
  11. vim中实现javascript代码自动完成功能
  12. Intel Core Enhanced Core架构/微架构/流水线 (2) - 代表处理器
  13. sql数据库 订阅发布_如何使用中央发布者和多个订阅者数据库设置自定义SQL Server事务复制
  14. 对抗攻击经典论文剖析(上)【FGSM、BIM、PGD、Carlini and Wagner Attacks (CW)】
  15. java - 操作系统 Linux
  16. 开源资产管理软件OCS Inventory 实践
  17. Pytorch forward方法调用原理
  18. archpr说文件不是rar文件_PDF压缩 | 从此PDF“文件过大”再也不是难题
  19. 解决如何打开端口的问题
  20. mysql定时任务,每天凌晨1点执行

热门文章

  1. win7添加ftp到计算机,技术编辑帮你win7系统FTP地址添加到资源管理器的收藏夹下的设置步骤...
  2. 干货!高速串行Serdes均衡之FFE
  3. linux内存占用过高怎么解决,centos7内存占用过高处理方法
  4. 游戏光枪坐标定位原理及算法
  5. 科学道德与学风-2021雨课堂答案-第9章
  6. 掌握生成对抗网络(GANs),召唤专属二次元老婆(老公)不是梦
  7. laravel broadcas广播
  8. 给大家分享几款浪漫的唯美APP
  9. ggplot2如何在R语言中绘制表格
  10. 如何将excel表格导入word_PPT怎样导入Excel表格?PPT导入Excel表格方法