程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 用JavaMail發送帶附件的Email

用JavaMail發送帶附件的Email

編輯:JAVA編程入門知識

  隨著網絡應用的不斷推廣,電子郵件越來越多的被大家使用。 <!-- frame contents --> <!-- /frame contents --> 雖然我們往往將電子郵件與 FoxMail、Outlook 這樣的電子郵件客戶端聯系起來,但是往往我們也需要自己編程實現發送接收郵件,例如在一個網站注冊用戶後網站發出的回執mail,或者在網絡購物的時候,在完成訂單後的幾分鐘之內發送確認電子郵件。對於這樣的需求,我們不能通過已有的郵件客戶端而需要自己編寫郵件發送或者處理程序。在這裡向大家講解一下如何利用JavaMail來實現郵件的收發。

  注重:本文只打算討論JavaMail收發帶附件郵件的一些技巧,所以只是給出部分代碼。

  1.發送帶附件的郵件

  我們平時發送的郵件主要可以分解成2大部分,一個是發信人,接信人,主題等郵件標頭,另外一部分是郵件內容,它包括了郵件的附件。我們在發送普通郵件的時候content設置的類型是"text/Html",帶上附件後,我們需要把content的類型設置成Multipart,這時content包括了附件和"text/html"類型的正文。下面的這個告訴大家如何把附件放置到郵件中。

  private Multipart getMultipart() throws MessagingException,UnsupportedEncodingException
  {
   MimeMultipart mp = new MimeMultipart();
   try
    {
   //設置content裡的內容
   MimeBodyPart contentMbp = new MimeBodyPart();
   //請指定字符集,否則會是亂碼
   contentMbp.setContent(_mailContent.getContent(), "text/html; charset=GB2312");
   mp.addBodyPart(contentMbp); //添加附件
   for (int i=0;i<_mailAttachment.getAttachPath().size();i++)
   {
    MimeBodyPart mbp = new MimeBodyPart();
    FileDataSource fds = new FileDataSource((String) _mailAttachment.getAttachPath().get(i));
    mbp.setDataHandler(new DataHandler(fds));
    mbp.setFileName(MimeUtility.encodeWord(fds.getName(), "GB2312",null));
    mp.addBodyPart(mbp);
   }
    }
    catch(MessagingException ie)
    {
   System.out.println("Set Content Message error..."+ie.getMessage());
   throw ie;
    }
    catch(UnsupportedEncodingException ie)
    {
   System.out.println("Encode the fileName error..."+ie.getMessage());
   throw ie;
    }
    return mp;
  }
  
  放置附件的注重事項如下:
  
  在發mail時需要注重字符集的問題。不但content裡要設置,而且文件名也需要設置。假如我們去掉mbp.setFileName(MimeUtility.encodeWord(fds.getName(),"GB2312",null));這句話,那麼你選中的附件還是會帶到郵件裡,但是在附件裡看不到。我們可以通過查看郵件大小知道。我們利用這個特點來實現發送content中寫的是html語言,而且包含圖片信息的郵件。

進入討論組討論。 2.發送content中包含html頁面的郵件

  
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved