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. springMVC容器加载源码分析

    springmvc是一个基于servlet容器的轻量灵活的mvc框架,在它整个请求过程中,为了能够灵活定制各种需求,所以提供了一系列的组件完成整个请求的映射,响应等等处理.这里我们来分析下spring ...

  2. sap smartform 打印乱码问题

    在smartforms打印的时候会遇到中英文结合的form 有时候系统会处理时出现乱码   有时不会  不知道是系统的事情还是配置的事情 现在是我的解决办法  因为是中英文结合 在中文环境建立form ...

  3. What is Data Driven Testing? Learn to create Framework

    What is Data Driven Testing? Data-driven is a test automation framework which stores test data in a ...

  4. POJ1046 Color Me Less

    题目来源:http://poj.org/problem?id=1046 题目大意: 在RGB颜色空间中,用下面的公式来度量两个颜色值的距离. 现给出16个RGB表示的颜色,和一些用于测试的颜色,求被测 ...

  5. UVa 10652(旋转、凸包、多边形面积)

    要点 凸包显然 长方形旋转较好的处理方式就是用中点的Vector加上旋转的Vector,然后每个点都扔到凸包里 多边形面积板子求凸包面积即可 #include <cstdio> #incl ...

  6. jcmd jmap应用:一个String经典笔试题的验证

    笔试题: String strA = new String("123123");这一行中创建了几个String对象?? public class StringHeapCountTe ...

  7. DB2的常用数据类型

    今天在db2中查询数据时出现错误: Overflow occurred during numeric data type conversion:SQLCODE=-413, SQLSTATE=22003 ...

  8. Fence Repair (二叉树求解)(优先队列,先取出小的)

    题目链接:http://poj.org/problem?id=3253 Fence Repair Time Limit: 2000MS   Memory Limit: 65536K Total Sub ...

  9. c/s和b/s的区别及实例说明【转】

    B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构.在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑 ...

  10. Java实例学习——企业进销存管理系统(2)

    Java实例学习--企业进销存管理系统(2) (本实例为书上实例,我所记录的是我的学习过程) 开始时间:2月12日 完成时间:暂未完成 2月15日-系统登录 对于昨天新建的12个Java包不能完全显示 ...