亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JavaMail快速入門(下)

2019-11-18 11:52:02
字體:
來源:轉載
供稿:網友

  通過POP3接受email
  在前面,我介紹了由javax.mail.Message實現的javax.mail.Part接口。我現在將解釋它的消息部分,它在這個例子中很重要。我們先看圖3。
   JavaMail快速入門(下)
點擊查看大圖


  圖3 mail.Part接口的UML圖 
  圖3表示在前面例子中建立的一個Message,它既可以是一個消息,也可以是一個消息部分,因為它實現了Part接口。對于任何部分,你都能得到它的內容(任何Java對象),并且在發送的是一個簡單文本消息的情況下,內容對象可能是一個String。對于多部分消息,內容可能是類型Multipart,由此我們可以得到單獨的正文部分,它本身就實現了Part接口
  實際上,當你看過SimpleReceiver類的代碼之后,你會發現一切都變得很明朗。我們用三部分內容來介紹SimpleReceiver類:第一部分,類的定義以及從命令行獲取連接細節信息的main()方法;第二部分,捕捉和查看進來消息的receive()方法;第三部分,打印頭信息和每個消息內容的PRintMessage()方法。
  下面是第一部分:
  package com.lotontech.mail;
  import javax.mail.*;
  import javax.mail.internet.*;
  import java.util.*;
  import java.io.*;
  /**
  * A simple email receiver class.
  */
  public class SimpleReceiver
   /**
   * Main method to receive messages from the mail server specified
   * as command line arguments.
   */
   public static void main(String args[])
   {
  try
  {
  String popServer=args[0];
  String popUser=args[1];
  String popPassWord=args[2];
  receive(popServer, popUser, popPassword);
  }
  catch (Exception ex)
  {
  System.out.println("Usage: java com.lotontech.mail.SimpleReceiver"+" popServer popUser popPassword");
  }
  System.exit(0);
  }
  現在我們使用命令行來運行它(記住用你的email設置替換命令行參數):
  java com.lotontech.mail.SimpleReceiver pop.myIsp.net myUserName myPassword
  receive()方法從main()方法中調用,它依次打開你的POP3信箱檢查消息,每次都調用printMessage()。代碼如下:
  /**
  * "receive" method to fetch messages and process them.
  */
  public static void receive(String popServer, String popUser
  , String popPassword)
  {
   Store store=null;
   Folder folder=null;
   try
   {
  // -- Get hold of the default session --
  Properties props = System.getProperties();
  Session session = Session.getDefaultInstance(props, null);
  // -- Get hold of a POP3 message store, and connect to it --
  store = session.getStore("pop3");
  store.connect(popServer, popUser, popPassword);
  // -- Try to get hold of the default folder --
  folder = store.getDefaultFolder();
  if (folder == null) throw new Exception("No default folder");
  // -- ...and its INBOX --
  folder = folder.getFolder("INBOX");
  if (folder == null) throw new Exception("No POP3 INBOX");
  // -- Open the folder for read only --
  folder.open(Folder.READ_ONLY);
  // -- Get the message wrappers and process them --
  Message[] msgs = folder.getMessages();
  for (int msgNum = 0; msgNum < msgs.length; msgNum++)
    {
  printMessage(msgs[msgNum]);
    }
  }
  catch (Exception ex)
  {
  ex.printStackTrace();
  }
  finally
  {
  // -- Close down nicely --
   try
   {
  if (folder!=null)
  folder.close(false);
  if (store!=null)
  store.close();
   }
  catch (Exception ex2) {ex2.printStackTrace();}
   }
  }
  請注重:你從session中得到一個POP3消息存儲封裝器,然后使用最初在命令行上鍵入的mail設置跟它連接。
  一旦連接成功,你就得到了一個默認文件夾的句柄,在這里使用的是INBOX文件夾,它保存了進來的消息。你可以打開這個只讀的INBOX信箱,然后一個一個的讀取消息。
  另外,你可能想知道是否你能夠以寫的方式打開這個INBOX信箱。假如你想為這些消息做標記或者從服務器上刪除,你可以做得到。不過在我們的這個例子中,你只能查看消息。
  最后,在上面的代碼中,你做到了當查看完畢后關閉文件夾以及消息存儲,然后留下printMessage()方法來完成這個類的剩余部分。
  打印消息
  在這一部分,很有必要討論前面提到的javax.mail.Part接口。
  下面的代碼讓你明白怎樣隱含地把消息轉換為它的Part接口并且把它賦給messagePart變量。對于只有一部分的消息,你現在需要打印一些信息。
  假如調用messagePart.getContent()來生成一個Multipart實例,你知道你正在處理一個多部分消息;在這種情況下,你正在通過getBodyPart(0)來得到第一個多部分消息并且打印它。
  當然你還要知道是否你已經得到了這個消息本身,還是僅僅是消息正文的第一部份。只有當內容是普通文本或者Html時,你才可以打印該消息,這是通過一個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();
  }
   }
  }
  為了簡單起見,我假設消息本身或者消息正文的第一部份是可以打印的。對于真正的應用軟件,可能你想要依次檢查消息正文的每一部分,并且對每一部分采取相應的行動-打印或者是保存到磁盤,這取決于內容的類型。
  當你從消息存儲中得到每個消息時,你實際上已經得到了一個輕量級的封裝器。數據內容的獲取是每申請一次就讀取一次-這對于你只想下載消息頭時很有用。
  SimpleReceiver測試
  讓我們對SimpleReceiver做一次測試。為了讓它有東西可以接收,我發送圖4所示的消息(注重:消息由文本和一個附件組成)
  圖4 用于SimpleReceiver的測試消息 
  一旦接收到消息,就把該消息認為是一個多部分消息。打印的文本如下:
  FROM: Tony Loton
  SUBJECT: Number 1
  [ Multipart Message ]
  CONTENT:text/plain;
  charset="iso-8859-1"
  Attachment 1
  from Tony Loton.
  -----------------------------
  把你的消息送出去
  為了有趣一點,并且說明JavaMail APIs的一個新奇的用法,我現在簡要介紹一下我的談話email項目。在做這個試驗之前你需要得到lotontalk.jar文件,并把它加到你的classpath中去,添加方法如下:
  set CLASSPATH=%CLASSPATH%;lotontalk.jar
  你也需要在SimpleReceiver類中兩個地方做代碼修改。首先在receive()方法里面,把以下代碼:
  // -- Get the message wrappers and process them --
  Message[] msgs = folder.getMessages();
  for (int msgNum = 0; msgNum < msgs.length; msgNum++)
  {
  printMessage(msgs[msgNum]);
  }
  替換為:
  // -- Get the message wrappers and process them --
  Message[] msgs = folder.getMessages();
  for (int msgNum = 0; msgNum < msgs.length; msgNum++)
  {
  printMessage(msgs[msgNum]);
  speakMe

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品久久久久久久久国产字幕| 欧美在线一级va免费观看| 国产精品99久久99久久久二8| 亚洲区中文字幕| 久久久久亚洲精品国产| 欧美整片在线观看| 91久久精品日日躁夜夜躁国产| 久久中文字幕视频| 日韩欧亚中文在线| 91国在线精品国内播放| 欧美亚洲在线视频| 亚洲综合成人婷婷小说| 国产成人精品最新| 精品自拍视频在线观看| 久热99视频在线观看| 亚洲视频在线视频| 国产精品综合久久久| 欧美日韩国产在线看| 4438全国成人免费| 中文字幕日韩视频| 欧美与欧洲交xxxx免费观看| 久久久久久久久久久成人| 亚洲国产97在线精品一区| 美女国内精品自产拍在线播放| 亚洲深夜福利网站| 日韩亚洲精品电影| 久久久久五月天| 欧美疯狂xxxx大交乱88av| 亚洲精品自拍偷拍| 97精品国产91久久久久久| 国产精品免费在线免费| 亚洲精品日韩激情在线电影| 色噜噜狠狠色综合网图区| 国产狼人综合免费视频| 久久久久久久久久国产精品| 国产精品成av人在线视午夜片| 亚洲欧洲日本专区| 国产精品久久综合av爱欲tv| 久久视频在线直播| 日韩在线观看精品| 国产视频久久久久| 欧美极品第一页| 欧美人与性动交a欧美精品| 欧美激情乱人伦一区| 狠狠综合久久av一区二区小说| 欧美成人激情图片网| 欧美激情xxxxx| 亚洲91av视频| 久久色精品视频| 亚洲成色999久久网站| 日韩欧美精品中文字幕| 欧美午夜宅男影院在线观看| 国产精品久久久久久av下载红粉| 操人视频在线观看欧美| 国内外成人免费激情在线视频网站| 欧美极品少妇xxxxⅹ免费视频| 18性欧美xxxⅹ性满足| 亚洲国内高清视频| 成人免费淫片aa视频免费| 97色在线播放视频| 岛国视频午夜一区免费在线观看| 亚洲娇小xxxx欧美娇小| 午夜精品久久久久久久久久久久| 中文字幕在线国产精品| 2019亚洲日韩新视频| 国产亚洲精品成人av久久ww| 欧美丝袜一区二区三区| 亚洲成在人线av| 91免费观看网站| 69影院欧美专区视频| 久久久国产精彩视频美女艺术照福利| 亚洲第一福利在线观看| 8090成年在线看片午夜| 在线不卡国产精品| 2019亚洲日韩新视频| 国产精品嫩草影院久久久| 国产精品自产拍在线观看中文| 久久青草精品视频免费观看| 欧美一区二区三区……| 亚洲性日韩精品一区二区| 日韩欧美在线第一页| 国产精品一区=区| 国产91色在线|| 日韩精品欧美国产精品忘忧草| 81精品国产乱码久久久久久| 国精产品一区一区三区有限在线| 最近2019免费中文字幕视频三| 亚洲va久久久噜噜噜久久天堂| 中文字幕日韩欧美精品在线观看| 亚洲xxxxx电影| 91中文在线观看| 91精品国产91久久久久久久久| 久久久久久69| 456亚洲影院| 欧美电影免费播放| 欧美高清在线播放| 亚洲成人网在线观看| 国产精品电影网| 91亚洲精品久久久久久久久久久久| 亚洲淫片在线视频| 欧美成人免费全部| 欧美日韩国产精品一区二区不卡中文| 性金发美女69hd大尺寸| 97视频在线观看视频免费视频| 国产日韩精品一区二区| 丝袜美腿精品国产二区| 成人网在线免费观看| 精品在线观看国产| 国产精品亚洲美女av网站| 欧美成年人视频网站欧美| 国产美女精品免费电影| 欧美午夜性色大片在线观看| 在线观看不卡av| 欧美成人午夜剧场免费观看| 欧美乱妇40p| 久久久久中文字幕2018| 国产亚洲xxx| 久久伊人色综合| 日韩国产在线看| 国产成人亚洲综合青青| 97色在线观看免费视频| 日本成人激情视频| 在线亚洲午夜片av大片| 国产噜噜噜噜久久久久久久久| 欧美香蕉大胸在线视频观看| 国产精品对白刺激| 国产一区深夜福利| 这里只有精品久久| 亚洲精品国产拍免费91在线| 78m国产成人精品视频| 深夜成人在线观看| 欧美野外wwwxxx| 国产一区二区三区在线观看视频| 久久久精品久久| 深夜福利一区二区| 亚洲丝袜一区在线| 亚洲91av视频| 日韩在线一区二区三区免费视频| 久久99精品久久久久久青青91| 国产精品美腿一区在线看| 国产精品精品久久久久久| 成人av在线天堂| 97精品国产91久久久久久| 亚洲一二在线观看| www.国产精品一二区| 亚洲欧美中文字幕在线一区| 欧美在线视频导航| 国产性猛交xxxx免费看久久| 亚洲社区在线观看| 成人av电影天堂| 欧美一级淫片播放口| 国产精品日韩在线一区| 亚洲性xxxx| 国产精品美女主播在线观看纯欲| 欧美日韩亚洲网| 国产精品大陆在线观看| 高跟丝袜欧美一区| 色偷偷91综合久久噜噜| 日本人成精品视频在线| 色综合久久中文字幕综合网小说| 欧美三级欧美成人高清www| 亚洲国产精品大全| 国产成人精品a视频一区www| 亚洲影院污污.|