Java 发送邮件工具类
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
#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 发送邮件工具类的更多相关文章
- JAVA发送邮件工具类
import java.util.Date;import java.util.Properties; import javax.mail.BodyPart;import javax.mail.Mess ...
- Jmail发送邮件工具类
好久没更新博客了,实在是拖延症严重啊,好可怕,先更新个工具类吧,之前写的发送邮件的小工具,话不多说上代码 import lombok.extern.slf4j.Slf4j; import java.u ...
- Java Properties工具类详解
1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...
- Java json工具类,jackson工具类,ObjectMapper工具类
Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...
- Java日期工具类,Java时间工具类,Java时间格式化
Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...
- Java并发工具类 - CountDownLatch
Java并发工具类 - CountDownLatch 1.简介 CountDownLatch是Java1.5之后引入的Java并发工具类,放在java.util.concurrent包下面 http: ...
- MinerUtil.java 爬虫工具类
MinerUtil.java 爬虫工具类 package com.iteye.injavawetrust.miner; import java.io.File; import java.io.File ...
- MinerDB.java 数据库工具类
MinerDB.java 数据库工具类 package com.iteye.injavawetrust.miner; import java.sql.Connection; import java.s ...
- 小记Java时间工具类
小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...
随机推荐
- Codevs 1080 线段树练习(CDQ分治)
1080 线段树练习 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 一行N个方格,开始每个格子里都有 ...
- BootStrap系统
BootStrsp的引入: <!-- 新 Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href="// ...
- 利用canvas实现倒计时功能
wxml代码:<view class=“page-body”><view class=“page-body-wrapper”><canvas canvas-id=“can ...
- 洛谷P1318 积水面积
题目描述 一组正整数,分别表示由正方体叠起的柱子的高度.若某高度值为\(x\),表示由\(x\)个正立方的方块迭起(如下图,\(0<=x<=5000\)).找出所有可能积水的地方(图中蓝色 ...
- thinkphp5缓存使用
之前不明白缓存有什么用处,后来看了一些案例大概有点了解,记录一下.1.thinkphp5没有静态缓存2.对于一些更新不是太频繁的数据,我们可以使用缓存机制对查询到的数据进行缓存,减缓数据库压力3.下面 ...
- Java基础笔记(十)—— 数组
数组是具有相同类型的数据的集合,是一种引用数据类型,一般具有固定的长度,并且在内存中占据连续的空间. 数组声明:数据类型[ ] 数组名; 数据类型 数组名[ ]; 如:int[ ...
- angularJS处理table中checkbox的选中状态
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 将Python的.py文件转变为可执行文件.exe
python是个很强大的工具,但我们生成的.py文件在没有Python环境下运行就需要转为.exe文件,我使用的是PyInstaller 1.安装PyInstaller: pip install Py ...
- 05.Spring 资源加载 - Resource
基本概念 Spring 把所有能记录信息的载体,如各种类型的文件.二进制流等都称为资源. 对 Spring 开发者来说,最常用的资源就是 Spring 配置文件(通常是一份 XML 格式的文件). S ...
- Postman安装步骤
Postman是一种网页调试与发送网页http请求的chrome插件. 我们可以用来很方便的模拟get或者post或者其他方式的请求来调试接口. 1.Postman_v4.1.3下载地址: http: ...