1.  Mail.java

package 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; public class Mail {
private static MimeMessage message;
static {
try {
Properties properties = new Properties();
properties.load(Mail.class.getResourceAsStream("/Mail.properties")); // 发件人邮箱用户名
final String userName = properties.getProperty("username"); final String password = AESCodec.decrypt(properties.getProperty("password"));
Session session = Session.getDefaultInstance(properties, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() { // 发件人邮件用户名、密码
return new PasswordAuthentication(userName, password);
}
}); message = new MimeMessage(session);
message.setFrom(new InternetAddress(userName)); // 设置邮件消息发送的时间
message.setSentDate(new Date());
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 发送纯文本格式邮件
*
* @param recipient 收件人
* @param subject 主题
* @param text 邮件文本内容
* @return 邮件是否发送成功
*/
public static boolean sendTextEmail(String recipient, String subject, String text) {
try { // Set To: 头部头字段
message.addRecipient(Message.RecipientType.TO, new InternetAddress(recipient)); // Set Subject: 头部头字段
message.setSubject(subject); // 设置消息体
message.setText(text); // 发送消息
Transport.send(message);
System.out.println("Sent message successfully....");
return true;
} catch (Exception e) {
e.printStackTrace();
System.out.println("Sent message failed....");
return false;
}
} /**
* 发送HTML格式邮件
*
* @param recipient 收件人
* @param subject 主题
* @param html 邮件内容HTML格式
* @return 邮寄是否发送成功
*/
public static boolean sendHtmlEmail(String recipient, String subject, String html) {
try { // Set To: 头部头字段
message.addRecipient(Message.RecipientType.TO, new InternetAddress(recipient)); // Set Subject: 头部头字段
message.setSubject(subject); // 创建消息部分
BodyPart body = new MimeBodyPart(); // 设置消息
body.setContent(html, "text/html; charset=utf-8"); // 创建多重消息
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(body); // 将MiniMultipart对象设置为邮件内容
message.setContent(multipart); // 发送消息
Transport.send(message);
System.out.println("Sent message successfully....");
return true;
} catch (Exception e) {
e.printStackTrace();
System.out.println("Sent message failed....");
return false;
}
} public static void main(String[] args) {
testHtml();
} /**
* 测试发送HTML格式邮件
*/
public static void testHtml() { // 收件人邮箱
String recipient = "hnfch@qq.com";
String subject = "生日快乐!"; StringBuffer content = new StringBuffer();
content.append("<html>");
content.append("<body>");
content.append("<h1>");
content.append("祝你生日快乐!");
content.append("</h1>");
content.append("<img src='http://d.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=324d313a233fb80e0c8469d106e10316/21a4462309f79052ab867a350ef3d7ca7bcbd51b.jpg' />");
content.append("</body>");
content.append("</html>"); System.out.println(sendHtmlEmail(recipient, subject, content.toString()));
}
}

2.   Mail.properties

#QQ
#mail.smtp.host=smtp.qq.com
#mail.smtp.auth=true
#username=
#password= #126
#mail.smtp.host=smtp.126.com
#mail.smtp.port=25
#mail.smtp.auth=true
#username=
#password= #163
mail.smtp.host=smtp.163.com
mail.smtp.port=25
mail.smtp.auth=true
username=k33666@126.com
password=AES加密后的密码

Java 发送邮件工具类的更多相关文章

  1. JAVA发送邮件工具类

    import java.util.Date;import java.util.Properties; import javax.mail.BodyPart;import javax.mail.Mess ...

  2. Jmail发送邮件工具类

    好久没更新博客了,实在是拖延症严重啊,好可怕,先更新个工具类吧,之前写的发送邮件的小工具,话不多说上代码 import lombok.extern.slf4j.Slf4j; import java.u ...

  3. Java Properties工具类详解

    1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...

  4. Java json工具类,jackson工具类,ObjectMapper工具类

    Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...

  5. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  6. Java并发工具类 - CountDownLatch

    Java并发工具类 - CountDownLatch 1.简介 CountDownLatch是Java1.5之后引入的Java并发工具类,放在java.util.concurrent包下面 http: ...

  7. MinerUtil.java 爬虫工具类

    MinerUtil.java 爬虫工具类 package com.iteye.injavawetrust.miner; import java.io.File; import java.io.File ...

  8. MinerDB.java 数据库工具类

    MinerDB.java 数据库工具类 package com.iteye.injavawetrust.miner; import java.sql.Connection; import java.s ...

  9. 小记Java时间工具类

    小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...

随机推荐

  1. Kotlin VS Java:基本语法差异

    Kotlin比Java更年轻,但它是一个非常有前途的编程语言,它的社区不断增长. 每个人都在谈论它,并说它很酷. 但为什么这么特别? 我们准备了一系列文章,分享我们在Kotlin开发Android应用 ...

  2. E 聪明的“KK”

    Description 非洲某国展馆的设计灵感源于富有传奇色彩的沙漠中陡然起伏的沙丘,体现出本国不断变换和绚丽多彩的自然风光与城市风貌.展馆由五部分组成,馆内影院播放名为<一眨眼的瞬间>的 ...

  3. Java基础笔记(十六)——继承

    继承 提取出一些共性特征,作为父类,子类就可以继承父类的这些开放成员,子类再添加自己独有的属性和方法.如果再有类具有这些共同特征,也可继承这个父类. 特点:1.利于代码复用     2.缩短开发周期 ...

  4. IOS 贝塞尔曲线切割圆角

    写一个UIView扩展 1. .h文件 @interface UIView (Corner) - (void)setCornerWithType:(UIRectCorner)type Radius:( ...

  5. 理解js继承的6种方式

    想要继承,就必须要提供个父类(继承谁,提供继承的属性) 一.原型链继承 重点:让新实例的原型等于父类的实例. 特点:1.实例可继承的属性有:实例的构造函数的属性,父类构造函数属性,父类原型的属性.(新 ...

  6. Stars(树状数组)

    算法学习:http://www.cnblogs.com/George1994/p/7710886.html 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid ...

  7. Java文件与io——NewIO

    为啥要使用NIO? NIO的创建目的是为了让JAVA程序员可以实现高速I/O而无需编写自定义的本机代码.NIO将最耗时的I/O操作(即填充和提取缓冲区)转移回操作系统,因而可以极大地提高速度 流与快的 ...

  8. linux安装gcc和gcc-c++

    有些VPS中使用的是精简版Linux,上篇linux下自动备份blog到dropbox中的gcc和gcc-c++编译器没安装,无法编译出链接的"hostid",下面是Linux安装 ...

  9. Lambda动态排序通用方法

    using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; us ...

  10. java基础知识——Java的定义,特点和技术平台

    (作者声明:对于Java编程语言,很多人只知道怎么用,却对其了解甚少.我也是其中一员.所以菜鸟的我,去查询了教科书以及大神的总结,主要参考了<Java核心技术>这本神作.现在分享给大家!) ...