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");// 設(shè)置郵件服務(wù)器的協(xié)議
25
props.put("mail.host", "smtp.qq.com");// 設(shè)置郵件發(fā)送服務(wù)器地址,該地址由郵件服務(wù)供應(yīng)商提供,這里以QQ郵箱為例
26
props.put("mail.smtp.auth", "true");// 設(shè)置郵件發(fā)送服務(wù)器需要用戶驗(yàn)證,即需要賬號(hào)密碼才能登錄郵箱
27
session = Session.getInstance(props, new Authenticator()
{// 通過配置獲取一個(gè)會(huì)話,第二個(gè)參數(shù)為驗(yàn)證類
28
@Override
29
protected PasswordAuthentication getPasswordAuthentication()
{
30
return new PasswordAuthentication("your email acount",
31
"your email password"); // 在這里指定登錄郵件發(fā)送服務(wù)器的賬號(hào)與密碼
32
// QQ郵箱的賬號(hào)默認(rèn)為 QQ號(hào)@qq.com 密碼為QQ密碼
33
}
34
});
35
// session.setDebug(true); //設(shè)置是否為Debug模式,如果為Debug模式,將輸出中間信息。
36
}
37
38
/** *//**
39
* 發(fā)送郵件
40
*
41
* @param emailTo
42
* 收件人信箱
43
* @param title
44
* 主題
45
* @param msgs
46
* 內(nèi)容
47
*/
48
public static void sendEmail(String emailTo, String title, String msgs)
{
49
System.out.println(msgs);
50
Message msg = new MimeMessage(session); // 該類封裝了郵件發(fā)送的內(nèi)容
51
try
{
52
// 設(shè)置發(fā)件人地址,可以是個(gè)假的!
53
msg.setFrom(new InternetAddress("bom1987120@qq.com"));
54
// 設(shè)置收件人
55
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(
56
emailTo, false));
57
// 設(shè)置主題
58
msg.setSubject(title);
59
// 設(shè)置內(nèi)容
60
msg.setText(msgs);
61
// 設(shè)置郵件頭
62
msg.setHeader("X-Mailer", "www.dangdang.com");
63
// 設(shè)置發(fā)送時(shí)間
64
msg.setSentDate(new Date());
65
66
// 發(fā)送!
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
//測(cè)試
78
public static void main(String[] argv)
{
79
for (int i = 0; i < 1000; i++)
80
sendEmail("XXXX@qq.com", "Java Mail 測(cè)試", "這是程序自動(dòng)給你發(fā)的!");
81
}
82
83
}