1 package common.impl;
2 import java.util.Properties;
3
4 import javax.mail.BodyPart;
5 import javax.mail.Message;
6 import javax.mail.MessagingException;
7 import javax.mail.Multipart;
8 import javax.mail.Session;
9 import javax.mail.Transport;
10 import javax.mail.internet.AddressException;
11 import javax.mail.internet.InternetAddress;
12 import javax.mail.internet.MimeBodyPart;
13 import javax.mail.internet.MimeMessage;
14 import javax.mail.internet.MimeMultipart;
15 import javax.servlet.http.HttpSession;
16
17 import org.apache.struts2.ServletActionContext;
18
19 /****************************************************************
20 * 对邮箱使用(对于其他的使用类似的你应该也会更改了)
21 * 首先把邮箱的POP3 SMTP打开
22 * 首先确定你的网络正常、非代理
23 * 确定你的邮箱开启了SMTP
24 * 如果没有开启,那么这样设置下
25 * 设置->账户 --在下面-- 把这个选上 [√]SMTP发信后保存到服务器
26 * 经过验证新浪 /网易邮箱可以往qq/sina/163发邮件但是qq不能作为发送方
27 ****************************************************************/
28
29 public class JavaMail {
30 //设置服务器
31 private static String KEY_SMTP = "mail.smtp.host";
32 private static String VALUE_SMTP = "smtp.sina.com";
33 //服务器验证
34 private static String KEY_PROPS = "mail.smtp.auth";
35 private static boolean VALUE_PROPS = true;
36 //发件人用户名、密码
37 private String SEND_USER = "111@sina.com";//你的邮箱
38 private String SEND_UNAME = "111@sina.com"; //你的邮箱
39 private String SEND_PWD = "111111"; //你的邮箱密码
40 //建立会话
41 private MimeMessage message;
42 private Session s;
43
44 /*
45 * 初始化方法
46 * */
47 public void SendEmail(){
48 Properties props = System.getProperties();
49 props.setProperty(KEY_SMTP, VALUE_SMTP);
50 props.put(KEY_PROPS, VALUE_PROPS);
51 s = Session.getInstance(props);
52 s.setDebug(true);/*开启后有调试信息*/
53 message = new MimeMessage(s);
54 }
55
56 /**
57 * 发送邮件
58 * @param headName 邮件头文件名
59 * @param sendHtml 邮件内容
60 * @param receiveUser 收件人1111@qq.com
61 */
62 public void doSendHtmlEmail(String headName,String sendHtml,String receiveUser){
63 try {
64 SendEmail();
65 // 发件人
66 InternetAddress from = new InternetAddress(SEND_USER);
67 message.setFrom(from);
68 // 收件人
69 InternetAddress to = new InternetAddress(receiveUser);
70 message.setRecipient(Message.RecipientType.TO, to);
71 // 邮件标题
72 message.setSubject(headName);
73 String content = sendHtml.toString();
74 // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
75 Multipart mainPart = new MimeMultipart();
76 // 创建一个包含HTML内容的MimeBodyPart
77 BodyPart html = new MimeBodyPart();
78 // 设置HTML内容
79 html.setContent(content, "text/html; charset=utf-8");
80 mainPart.addBodyPart(html);
81 // 将MiniMultipart对象设置为邮件内容
82 message.setContent(mainPart);
83 message.setSentDate(new java.util.Date());//设置发信时间
84 message.saveChanges();
85 Transport transport = s.getTransport("smtp");
86 // smtp验证,就是你用来发邮件的邮箱用户名密码
87 transport.connect(VALUE_SMTP, SEND_UNAME, SEND_PWD);
88 // 发送
89 transport.sendMessage(message, message.getAllRecipients());
90 transport.close();
91 } catch (AddressException e) {
92 // TODO Auto-generated catch block
93 e.printStackTrace();
94 } catch (MessagingException e) {
95 e.printStackTrace();
96 }
97 }
98
99 }
100
101
102