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
}