jspEmail:sendMailServlet

 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() {
  }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章