1
2
import java.util.Date;
3
import java.util.Properties;
4
5
import javax.mail.Authenticator;
6
import javax.mail.Message;
7
import javax.mail.MessagingException;
8
import javax.mail.PasswordAuthentication;
9
import javax.mail.Session;
10
import javax.mail.Transport;
11
import javax.mail.internet.AddressException;
12
import javax.mail.internet.InternetAddress;
13
import javax.mail.internet.MimeMessage;
14
15
public class EmailUtils
{
16
17
private static Properties props;
18
19
private static Session session;
20
21
// 初始化session
22
static
{
23
props = System.getProperties();
24
props.put("mail.transport.protocol", "stmp");// 设置邮件服务器的协议
25
props.put("mail.host", "smtp.qq.com");// 设置邮件发送服务器地址,该地址由邮件服务供应商提供,这里以QQ邮箱为例
26
props.put("mail.smtp.auth", "true");// 设置邮件发送服务器需要用户验证,即需要账号密码才能登录邮箱
27
session = Session.getInstance(props, new Authenticator()
{// 通过配置获取一个会话,第二个参数为验证类
28
@Override
29
protected PasswordAuthentication getPasswordAuthentication()
{
30
return new PasswordAuthentication("your email acount",
31
"your email password"); // 在这里指定登录邮件发送服务器的账号与密码
32
// QQ邮箱的账号默认为 QQ号@qq.com 密码为QQ密码
33
}
34
});
35
// session.setDebug(true); //设置是否为Debug模式,如果为Debug模式,将输出中间信息。
36
}
37
38
/** *//**
39
* 发送邮件
40
*
41
* @param emailTo
42
* 收件人信箱
43
* @param title
44
* 主题
45
* @param msgs
46
* 内容
47
*/
48
public static void sendEmail(String emailTo, String title, String msgs)
{
49
System.out.println(msgs);
50
Message msg = new MimeMessage(session); // 该类封装了邮件发送的内容
51
try
{
52
// 设置发件人地址,可以是个假的!
53
msg.setFrom(new InternetAddress("bom1987120@qq.com"));
54
// 设置收件人
55
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(
56
emailTo, false));
57
// 设置主题
58
msg.setSubject(title);
59
// 设置内容
60
msg.setText(msgs);
61
// 设置邮件头
62
msg.setHeader("X-Mailer", "www.dangdang.com");
63
// 设置发送时间
64
msg.setSentDate(new Date());
65
66
// 发送!
67
Transport.send(msg);
68
69
System.out.println("Mail was sent successfully.\n");
70
} catch (AddressException e)
{
71
e.printStackTrace();
72
} catch (MessagingException e)
{
73
e.printStackTrace();
74
}
75
}
76
77
//测试
78
public static void main(String[] argv)
{
79
for (int i = 0; i < 1000; i++)
80
sendEmail("XXXX@qq.com", "Java Mail 测试", "这是程序自动给你发的!");
81
}
82
83
}