發送帶附件的郵件(包括檔案上傳)

來源:互聯網
上載者:User

public class SendAttachment extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  this.doPost(request, response);
 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
//  設定是163郵箱的地址
  String host="smtp.163.com";
//  設定郵箱賬戶名稱
  String accountName="NutsISA";
//  設定郵箱賬戶密碼
  String password="******";
//  上傳的附件
  File uploadedFile=null;
//  發件個地址
  String from="";
//  收件者地址
  String to="";
//  郵件主題
  String subject="";
//  郵件內容
  String content="";
  
//  把附件內容上傳到伺服器
  //判斷出提交過來的表單是否為檔案上傳表單,如果不是檔案上傳表單,在後續的處理中就不再用檔案上傳功能來處理這個表單
  boolean isMultipart=ServletFileUpload.isMultipartContent(request);
  if(isMultipart){
   FileItemFactory factory=new DiskFileItemFactory();
   ServletFileUpload upload=new ServletFileUpload(factory);//構造一個檔案上傳處理對象
   Iterator items;
   try{
    items=upload.parseRequest(request).iterator();//解析出表單中提交的所有檔案內容
    while(items.hasNext()){
     FileItem item=(FileItem)items.next();
     if(!item.isFormField()){
//      取出上傳檔案的名稱
      String name=item.getName();
      String fileName=name.substring(name.lastIndexOf('\\')+1,name.length());
      //上傳到伺服器以後儲存的路徑(上傳的檔案將被儲存到當前應用項目的fileName字串表示的檔案夾中)
      String path=request.getRealPath(fileName);
//      上傳檔案
      uploadedFile=new File(path);
      item.write(uploadedFile);
     }else if(item.isFormField()){
//      下面取出表單中各個輸入欄位的值
      if(item.getFieldName().equals("from")){
       from=item.getString();
      }else if(item.getFieldName().equals("to")){
       to=item.getString();
      }else if(item.getFieldName().equals("subject")){
       subject=item.getString();
      }else if(item.getFieldName().equals("content")){
       content=item.getString();
      }
     }
    }
   }catch(Exception e){
    e.printStackTrace();
   }
  }
//  設定郵件資訊
  AttachmentSender sender=new AttachmentSender(host,accountName,password);
  sender.setFrom(from);//設定寄件者
  sender.setTo(to);//設定收件者
  sender.setSubject(subject);//設定主題
  sender.setContent(content);//設定本文
  if(uploadedFile != null){
   String attachement=request.getRealPath(uploadedFile.getName());
   sender.addAttachment(attachement);
  }
//  列印發送郵件結果
  response.setContentType("text/html");
  response.setCharacterEncoding("gb2312");
  PrintWriter out=response.getWriter();
  if(sender.send()){
   out.print("<font size='1'>郵件發送成功!</font><br>");
  }else{
   out.print("<font size='1'>郵件發送失敗!</font><br>");
  }
//  發送郵件以後,刪除上傳檔案
  if(uploadedFile.exists())
   uploadedFile.delete();
 }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.