背景介绍:
在大多数管理系统中都会有发送邮件的功能 , 邮件是管理系统与用户之间保持沟通的一种可靠的方式 , 目前常见的邮箱有有 QQ 和网易等 , 那么本文就针对这两类邮箱分别提供可直接使用的工具类 .
代码实现
发送网易邮件的Java类
[Java]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
import
java.security.GeneralSecurityException;
[/size]
import
java.util.Properties;
import
javax.mail.Authenticator;
import
javax.mail.Message;
import
javax.mail.MessagingException;
import
javax.mail.PasswordAuthentication;
import
javax.mail.Session;
import
javax.mail.Transport;
import
javax.mail.internet.AddressException;
import
javax.mail.internet.InternetAddress;
import
javax.mail.internet.MimeMessage;
import
javax.mail.internet.MimeMessage.RecipientType;
public
class
MailUtils_163 {
private
static
String userName =
"发件人邮箱账号"
;
//发 送 邮 件的1 6 3邮 箱 账 号
private
static
String password =
"发件人邮箱密码"
;
//1 6 3 邮 箱 的 授 权 码,若 没 有 则 使 用 密 码
private
static
String userName2 =
"收件人邮箱账号"
;
//接 收 邮 件 的 1 6 3 邮 箱 账 号
private
static
String port =
"25"
;
//端 口 号
/**
* 该 方 法 用 来 发 送 邮 件
* @param to:给 谁 发 邮 件
* **/
public
static
void
sendMain(String to)
throws
AddressException, MessagingException, GeneralSecurityException{
//1、创 建 连 接 对 象,连 接 到 邮 箱 服 务 器
Properties props =
new
Properties();
//开 启debug调试
props.setProperty(
"mail.debug"
,
"true"
);
//stmp服务器需要进行身份验证,也就是有 户 名和密 码的校验,这样才能通过验证
props.setProperty(
"mail.smtp.auth"
,
"true"
);
//发送邮件协议名称
props.setProperty(
"mail.transport.protocol"
,
"smtp"
);
//设置邮件服务器主机名
props.setProperty(
"mail.host"
,
"smtp.163.com"
);
//设置成163的发件服务器
//设端口号(该配置可写可不写)
props.setProperty(
"mail.smtp.port"
, port);
//密 码、授 权 码
props.setProperty(
"mail.smtp.password"
,password);
//Authenticator:认证信息
Session session = Session.getInstance(props,
new
Authenticator(){
@Override
protected
PasswordAuthentication getPasswordAuthentication() {
return
new
PasswordAuthentication(userName,password);
//使用它给其他账户发邮件
}
});
//2、创建邮件对象
Message message =
new
MimeMessage(session);
//2.1设置发件人
message.setFrom(
new
InternetAddress(userName));
//2、2设置收件人
message.setRecipient(RecipientType.TO,
new
InternetAddress(to));
//2.3邮件的主题
message.setSubject(
"测试发消息"
);
//2.4邮件的正文(即邮件的内容)
message.setContent(
"2018-1-30:测试邮件:javaMail-网 易 邮 箱测试"
,
"text/html;charset=utf-8"
);
//3.发送邮 件
Transport trans = session.getTransport();
//连接邮 件服务器
trans.connect(userName, password);
//发送邮 件
trans.sendMessage(message, message.getAllRecipients());
//关 闭连接
trans.close();
//Transport.send(message);(两种方式都可以)
System.out.println(
"发送成功"
);
}
public
static
void
main(String[] args) {
try
{
sendMain(userName2);
}
catch
(Exception e) {
e.printStackTrace();
}
}
}
|
发送QQ邮箱的工具类
[Java]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
import
java.security.GeneralSecurityException;
import
java.util.Properties;
import
javax.mail.Authenticator;
import
javax.mail.Message;
import
javax.mail.MessagingException;
import
javax.mail.PasswordAuthentication;
import
javax.mail.Session;
import
javax.mail.Transport;
import
javax.mail.internet.AddressException;
import
javax.mail.internet.InternetAddress;
import
javax.mail.internet.MimeMessage;
import
javax.mail.internet.MimeMessage.RecipientType;
import
com.sun.mail.util.MailSSLSocketFactory;
public
class
MailUtils_qq {
private
static
String userName =
"发件人的QQ邮箱地址"
;
//发 送邮 件的Q Q邮 箱 账 号
private
static
String password =
"发件人的QQ的密码"
;
//授 权 码
private
static
String userName2 =
"收件人的邮箱地址"
;
//接 收 邮 件 的Q Q邮 箱 账 号
private
static
String port =
"465"
;
//465、587
/**
* 该 方 法 用 来 发 送 邮 件
* @param to:给 谁 发 邮 件
* **/
public
static
void
sendMain(String to)
throws
AddressException, MessagingException, GeneralSecurityException{
//1、创 建 连 接 对 象,连 接 到 邮 箱 服 务 器
Properties props =
new
Properties();
//开 启 debug 调 试
props.setProperty(
"mail.debug"
,
"true"
);
//stmp服 务 器 需 要 进 行 身 份 验 证,也 就 是 用 户 名 和 密 码 的 校 验,这 样 才 能 通 过 验 证
props.setProperty(
"mail.smtp.auth"
,
"true"
);
//发 送 邮 件 协 议 名 称
props.setProperty(
"mail.transport.protocol"
,
"smtp"
);
//设 置 邮 件服 务 器 主 机 名
props.setProperty(
"mail.host"
,
"smtp.qq.com"
);
//设 置 成 q q 的发 件 服 务 器:(不要使用smtp.exmail.qq.com)
//设 端 口 号 (该 配 置 可 写 可 不 写)
props.setProperty(
"mail.smtp.port"
, port);
//授 权 码
props.setProperty(
"mail.smtp.password"
,password);
//开 启 S S L 加 密,否 则 会 失 败
MailSSLSocketFactory sf =
new
MailSSLSocketFactory();
sf.setTrustAllHosts(
true
);
props.put(
"mail.smtp.ssl.enable"
,
"true"
);
props.put(
"mail.smtp.ssl.socketFactory"
, sf);
//Authenticator:认 证 信 息
Session session = Session.getInstance(props,
new
Authenticator(){
@Override
protected
PasswordAuthentication getPasswordAuthentication() {
return
new
PasswordAuthentication(userName,password);
//使 用 它 给 其 他 账 户 发 邮 件
}
});
//2、创 建 邮 件 对 象
Message message =
new
MimeMessage(session);
//2.1 设 置 发 件 人
message.setFrom(
new
InternetAddress(userName));
//2、2 设 置 收 件 人
message.setRecipient(RecipientType.TO,
new
InternetAddress(to));
//2.3 邮 件 的 主 题
message.setSubject(
"测 试 发 消 息"
);
//2.4 邮 件 的 正 文(即 邮 件 的 内 容)
message.setContent(
"测 试 邮 件:javaMail-Q Q 邮 箱 测 试"
,
"text/html;charset=utf-8"
);
//3.发 送 邮 件
Transport trans = session.getTransport();
//连 接 邮 件 服 务 器
trans.connect(userName, password);
//发 送 邮 件
trans.sendMessage(message, message.getAllRecipients());
//关 闭 连 接
trans.close();
//Transport.send(message);(两 种 方 式 都 可 以)
System.out.println(
"发 送 成 功"
);
}
public
static
void
main(String[] args) {
try
{
sendMain(userName2);
}
catch
(Exception e) {
e.printStackTrace();
}
}
}
|