1
2import java.util.Date;
3import java.util.Properties;
4
5import javax.mail.Authenticator;
6import javax.mail.Message;
7import javax.mail.MessagingException;
8import javax.mail.PasswordAuthentication;
9import javax.mail.Session;
10import javax.mail.Transport;
11import javax.mail.internet.AddressException;
12import javax.mail.internet.InternetAddress;
13import javax.mail.internet.MimeMessage;
14
15public 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}