首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級 | 職稱英語 | 商務(wù)英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學(xué)習(xí) | 法語 | 德語 | 韓語
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證
華為認證 | Java認證
公務(wù)員 | 報關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問 | 導(dǎo)游資格
報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網(wǎng)絡(luò)編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護士
會計從業(yè)資格考試會計證) | 經(jīng)濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務(wù)師
注冊資產(chǎn)評估師 | 高級會計師 | ACCA | 統(tǒng)計師 | 精算師 | 理財規(guī)劃師 | 國際內(nèi)審師
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價師 | 土地估價師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀人 | 投資項目管理師 | 土地登記代理人 | 環(huán)境影響評價師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師
繽紛校園 | 實用文檔 | 英語學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲
您現(xiàn)在的位置: 考試吧(Exam8.com) > 計算機等級考試 > 計算機二級 > JAVA > 復(fù)習(xí)資料 > 正文

2011年計算機等考二級JAVA學(xué)習(xí)精華整理(71)

考試吧整理了2011年計算機的等考二級JAVA學(xué)習(xí)精華,幫助考生備考。

  五、使用JavaMail API

  在明確了JavaMail API的核心部分如何工作后,本人將帶領(lǐng)大家學(xué)習(xí)一些使用Java Mail API任務(wù)案例。

  1.發(fā)送郵件

  在獲得了Session后,建立并填入郵件信息,然后發(fā)送它到郵件服務(wù)器。這便是使用Java Mail API發(fā)送郵件的過程,在發(fā)送郵件之前,我們需要設(shè)置SMTP服務(wù)器:通過設(shè)置Properties的mail.smtp.host屬性。

  String host = ...;String from = ...;String to = ...;// Get system propertiesProperties props = System.getProperties();// Setup mail serverprops.put("mail.smtp.host", host);// Get sessionSession session = Session.getDefaultInstance(props, null);// Define messageMimeMessage message = new MimeMessage(session);message.setFrom(new InternetAddress(from));message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));message.setSubject("Hello JavaMail");message.setText("Welcome to JavaMail");// Send messageTransport.send(message);

  由于建立郵件信息和發(fā)送郵件的過程中可能會拋出異常,所以我們需要將上面的代碼放入到try-catch結(jié)構(gòu)塊中。

  2.接收郵件

  為了在讀取郵件,我們獲得了session,并且連接到了郵箱的相應(yīng)store,打開相應(yīng)的Folder,然后得到我們想要的郵件,當(dāng)然別忘記了在結(jié)束時關(guān)閉連接。

  String host = ...;String username = ...;String password = ...;// Create empty propertiesProperties props = new Properties();// Get sessionSession session = Session.getDefaultInstance(props, null);// Get the storeStore store = session.getStore("pop3");store.connect(host, username, password);// Get folderFolder folder = store.getFolder("INBOX");folder.open(Folder.READ_ONLY);// Get directoryMessage message[] = folder.getMessages();for (int i=0, n=message.length; i

  上面的代碼所作的是從郵箱中讀取每個郵件,并且顯示郵件的發(fā)信人地址和主題。從技術(shù)角度講,這里存在著一個異常的可能:當(dāng)發(fā)信人地址為空時,getFrom()[0]將拋出異常。

  下面的代碼片斷有效的說明了如何讀取郵件內(nèi)容,在顯示每個郵件發(fā)信人和主題后,將出現(xiàn)用戶提示從而得到用戶是否讀取該郵件的確認,如果輸入YES的話,我們可用Message.writeTo(java.io.OutputStream os)方法將郵件內(nèi)容輸出到控制臺上,關(guān)于Message.writeTo()的具體用法請看JavaMail API。

  BufferedReader reader = new BufferedReader ( new InputStreamReader(System.in));// Get directoryMessage message[] = folder.getMessages();for (int i=0, n=message.length; i

  窗體底端

  B.讀取郵件中的附件

  讀取郵件中的附件的過程要比發(fā)送它的過程復(fù)雜一點。因為帶有附件的郵件是多部分組成的,我們必須處理每一個部分獲得郵件的內(nèi)容和附件。

  但是如何辨別郵件信息內(nèi)容和附件呢?Sun在Part類(BodyPart類實現(xiàn)的接口類)中提供了getDisposition()方法讓開發(fā)者獲得郵件體部分的部署類型,當(dāng)該部分是附件時,其返回之將是Part.ATTACHMENT。但附件也可以沒有部署類型的方式存在或者部署類型為Part.INLINE,無論部署類型為Part.ATTACHMENT還是Part.INLINE,我們都能把該郵件體部分導(dǎo)出保存。

  Multipart mp = (Multipart)message.getContent();for (int i=0, n=multipart.getCount(); i

  下列代碼中使用了saveFile方法是自定義的方法,它根據(jù)附件的文件名建立一個文件,如果本地磁盤上存在名為附件的文件,那么將在文件名后增加數(shù)字表示區(qū)別。然后從郵件體中讀取數(shù)據(jù)寫入到本地文件中(代碼省略)。

  // from saveFile()File file = new File(filename);for (int i=0; file.exists(); i++) { file = new File(filename+i);}

  以上是郵件體部分被正確設(shè)置的簡單例子,如果郵件體部分的部署類型為null,那么我們通過獲得郵件體部分的MIME類型來判斷其類型作相應(yīng)的處理,代碼結(jié)構(gòu)框架如下:

  if (disposition == null) { // Check if plain MimeBodyPart mbp = (MimeBodyPart)part; if (mbp.isMimeType("text/plain")) { // Handle plain } else { // Special non-attachment cases here of // image/gif, text/html, ... }...}

  8.處理HTML郵件

  前面的例子中發(fā)送的郵件都是以文本為內(nèi)容的(除了附件),下面將介紹如何接收和發(fā)送基于HTML的郵件。

  A.發(fā)送HTML郵件

  假如我們需要發(fā)送一個HTML文件作為郵件內(nèi)容,并使郵件客戶端在讀取郵件時獲取相關(guān)的圖片或者文字的話,只要設(shè)置郵件內(nèi)容為html代碼,并設(shè)置內(nèi)容類型為text/html即可:

  String htmlText = "

  Hello

  " + "";message.setContent(htmlText, "text/html"));

  請注意:這里的圖片并不是在郵件中內(nèi)嵌的,而是在URL中定義的。郵件接收者只有在線時才能看到。

  在接收郵件時,如果我們使用JavaMail API接收郵件的話是無法實現(xiàn)以HTML方式顯示郵件內(nèi)容的。因為JavaMail API郵件內(nèi)容視為二進制流。所以要顯示HTML內(nèi)容的郵件,我們必須使用JEditorPane或者第三方HTML展現(xiàn)組件。

  以下代碼顯示了如何使用JEditorPane顯示郵件內(nèi)容:

  if (message.getContentType().equals("text/html")) { String content = (String)message.getContent(); JFrame frame = new JFrame(); JEditorPane text = new JEditorPane("text/html", content); text.setEditable(false); JScrollPane pane = new JScrollPane(text); frame.getContentPane().add(pane); frame.setSize(300, 300); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.show();}

上一頁  1 2 3 4 5 6 7 8 下一頁
  相關(guān)推薦:

  計算機等級考試二級Java經(jīng)典算法大全匯總

  2010年9月計算機等級考試成績查詢時間匯總

   2011計算機等級考試二級JAVA學(xué)習(xí)精華匯總

文章搜索
計算機等級考試欄目導(dǎo)航
版權(quán)聲明:如果計算機等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計算機等級考試網(wǎng)內(nèi)容,請注明出處。