国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

JavaMail快速入門-7

2019-11-18 16:20:37
字體:
供稿:網(wǎng)友

  請注意:你從session中得到一個(gè)POP3消息存儲(chǔ)封裝器,然后使用最初在命令行上鍵入的mail設(shè)置跟它連接。

  一旦連接成功,你就得到了一個(gè)默認(rèn)文件夾的句柄,在這里使用的是INBOX文件夾,它保存了進(jìn)來的消息。你可以打開這個(gè)只讀的INBOX信箱,然后一個(gè)一個(gè)的讀取消息。

  另外,你可能想知道是否你能夠以寫的方式打開這個(gè)INBOX信箱。如果你想為這些消息做標(biāo)記或者從服務(wù)器上刪除,你可以做得到。不過在我們的這個(gè)例子中,你只能查看消息。

  最后,在上面的代碼中,你做到了當(dāng)查看完畢后關(guān)閉文件夾以及消息存儲(chǔ),然后留下PRintMessage()方法來完成這個(gè)類的剩余部分。

  打印消息

  在這一部分,很有必要討論前面提到的javax.mail.Part接口。

  下面的代碼讓你明白怎樣隱含地把消息轉(zhuǎn)換為它的Part接口并且把它賦給messagePart變量。對于只有一部分的消息,你現(xiàn)在需要打印一些信息。

  假如調(diào)用messagePart.getContent()來生成一個(gè)Multipart實(shí)例,你知道你正在處理一個(gè)多部分消息;在這種情況下,你正在通過getBodyPart(0)來得到第一個(gè)多部分消息并且打印它。

  當(dāng)然你還要知道是否你已經(jīng)得到了這個(gè)消息本身,還是僅僅是消息正文的第一部份。只有當(dāng)內(nèi)容是普通文本或者Html時(shí),你才可以打印該消息,這是通過一個(gè)InputStream來完成的。

/**

* "printMessage()" method to print a message.

*/

public static void printMessage(Message message)

{

 try

 {

  // Get the header information

  String from=((InternetAddress)message.getFrom()[0]).getPersonal();

  if (from==null) from=((InternetAddress)message.getFrom()[0])

   .getAddress();

   System.out.println("FROM: "+from);

   String subject=message.getSubject();

   System.out.println("SUBJECT: "+subject);

   // -- Get the message part (i.e. the message itself) --

   Part messagePart=message;

   Object content=messagePart.getContent();

   // -- or its first body part if it is a multipart message --

   if (content instanceof Multipart)

   {

    messagePart=((Multipart)content).getBodyPart(0);

    System.out.println("[ Multipart Message ]");

   }

   // -- Get the content type --

   String contentType=messagePart.getContentType();

   // -- If the content is plain text, we can print it --

   System.out.println("CONTENT:"+contentType);

   if (contentType.startsWith("text/plain") contentType.startsWith("text/html"))

   {

    InputStream is = messagePart.getInputStream();

    BufferedReader reader=new BufferedReader(new InputStreamReader(is));

               String thisLine=reader.readLine();

    while (thisLine!=null)

    {

     System.out.println(thisLine);

     thisLine=reader.readLine();

    }

   }

   System.out.println("-----------------------------");

  }

  catch (Exception ex)

  {

   ex.printStackTrace();

  }

 }

}

  為了簡單起見,我假設(shè)消息本身或者消息正文的第一部份是可以打印的。對于真正的應(yīng)用軟件,可能你想要依次檢查消息正文的每一部分,并且對每一部分采取相應(yīng)的行動(dòng)-打印或者是保存到磁盤,這取決于內(nèi)容的類型。


  當(dāng)你從消息存儲(chǔ)中得到每個(gè)消息時(shí),你實(shí)際上已經(jīng)得到了一個(gè)輕量級的封裝器。數(shù)據(jù)內(nèi)容的獲取是每申請一次就讀取一次-這對于你只想下載消息頭時(shí)很有用。

(出處:http://m.survivalescaperooms.com)



發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 五河县| 莲花县| 临西县| 囊谦县| 额尔古纳市| 肇源县| 黄大仙区| 新乡市| 城市| 偏关县| 随州市| 安仁县| 南康市| 尤溪县| 宜兴市| 平山县| 丰原市| 剑阁县| 新郑市| 应用必备| 宁明县| 延吉市| 天镇县| 泉州市| 孙吴县| 湖南省| 宕昌县| 万荣县| 那曲县| 汉源县| 工布江达县| 青岛市| 手游| 平原县| 和顺县| 康定县| 昭觉县| 桂阳县| 罗源县| 彭州市| 东乌珠穆沁旗|