package javamailtest;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.util.Properties;
public class sendMailServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
String smtpServer = request.getParameter("mailserver");
String mailTo = request.getParameter("mailto");
String mailFrom = request.getParameter("mailfrom");
String subject = request.getParameter("subject");
String content = request.getParameter("content");
System.out.println(smtpServer+mailTo+mailFrom+subject+content);
System.out.println(request.getParameter("file1"));
try {
Properties props = new Properties();
//Properties prop = System.getProperties();取得Properties的另一種方法
//props.put("mail.transport.protocol","smtp");
props.put("mail.smtp.host","smtp.163.com");
//props.put("mail.smtp.port","25");
props.put("mail.smtp.auth","true");
Session mailSession = Session.getInstance(props);
mailSession.setDebug(true);
/*
Properties props=new Properties();//也可用Properties props = System.getProperties();
props.put("mail.smtp.host","smtp.163.com");//存儲發送郵件服務器的信息
props.put("mail.smtp.auth","true");//同時通過驗證
Session s=Session.getInstance(props);//根據屬性新建一個郵件會話
s.setDebug(true);
MimeMessage message=new MimeMessage(s);//由郵件會話新建一個消息對象
//設置郵件
InternetAddress from=new InternetAddress("[email protected]");
message.setFrom(from);//設置發件人
InternetAddress to=new InternetAddress(tto);
message.setRecipient(Message.RecipientType.TO,to);//設置收件人,並設置其接收類型爲TO
message.setSubject(ttitle);//設置主題
message.setText(tcontent);//設置信件內容
message.setSentDate(new Date());//設置發信時間
//發送郵件
message.saveChanges();//存儲郵件信息
Transport transport=s.getTransport("smtp");
transport.connect("smtp.163.com","liboofsc","642364");//以smtp方式登錄郵箱
transport.sendMessage(message,message.getAllRecipients());//發送郵件,其中第二個參數是所有
//已設好的收件人地址
transport.close();
*/
//MimeMessage的對象用來裝整個郵件的對象
MimeMessage msg = new MimeMessage(mailSession);
//Multipart mp = new MimeMultipart();
//BodyPart的對象用來裝附件型式內容和腳本型式郵件內容
//MimeBodyPart bp = new MimeBodyPart();
FileDataSource fileds = new FileDataSource("c://csb.log");
//在BodyPart對象中添加一個附件
//bp.setDataHandler(new DataHandler(fileds));
//bp.setFileName(fileds.getName());
//bp.setText(content);
//在BodyPart對象中添加一個html腳本
/*
bp.setContent(
"<meta http-equiv=Content-Type content=text/html; charset=gb2312>" +
"<meta http-equiv=Content-Type content=text/html; charset=gb2312>" +
"<div align=center><a href=http://www.csdn.net> csdn </a></div>", "text/html;charset=GB2312");
*/
//mp.addBodyPart(bp);
//msg.setContent(mp);
InternetAddress address = new InternetAddress("[email protected]");
address.setPersonal("lyws");
msg.setFrom(address);
msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse("[email protected]"));
//msg.setSentDate(new Date());
//加入郵件標題
msg.setSubject(subject);
/**
* 郵件的正文內容通常可以分幾個部分,包括文本正文,腳本正文及附件。
* 每一部分通常都用一個MimeBodyPart對象來裝
* 接一下把幾部分都加入Multipart對象,Multipart對象包含郵件正文的全部內容
* 最後把Multipart對象放入MimeMessage對象中,正文內容就設定完成
*/
//定義一個Multipart對象用來裝整個郵件的正文部分
Multipart multipart = new MimeMultipart();
//定義一個MimeBodyPart對象,用來裝郵件的文本內容然後加入Multipart對象中
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(content);
multipart.addBodyPart(messageBodyPart);
//定義一個MimeBodyPart對象,用來裝郵件的附件內容然後加入Multipart對象中
MimeBodyPart fileBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource("c://aa.jpg");
fileBodyPart.setDataHandler(new DataHandler(source));
fileBodyPart.setFileName(source.getName());
multipart.addBodyPart(fileBodyPart);
//定義一個MimeBodyPart對象,用來裝郵件的腳本內容然後加入Multipart對象中
MimeBodyPart htmlBodyPart = new MimeBodyPart();
htmlBodyPart.setContent("<meta http-equiv=Content-Type content=text/html; charset=gb2312>" +
"<meta http-equiv=Content-Type content=text/html; charset=gb2312>" +
"<div align=center><a href=http://www.csdn.net> csdn </a></div>", "text/html;charset=GB2312");
multipart.addBodyPart(htmlBodyPart);
//把Multipart對象加入到MimeMessage對象中
msg.setContent(multipart);
//msg.setText(content);
msg.saveChanges();
Transport trans = mailSession.getTransport("smtp");
//System.out.println("1111111111111111");
trans.connect("smtp.163.com", "lyws", "800518");
//System.out.println("1111111111111111");
//trans.connect( (String) props.get("mail.smtp.host"), "liboofsc", "642364");
trans.sendMessage(msg,msg.getRecipients(Message.RecipientType.TO));
//msg.writeTo(System.out);
out.println("郵件發送成功"+mailTo);
trans.close();
}
catch (MessagingException ex) {
System.out.println(ex);
}
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
//Clean up resources
public void destroy() {
}
}