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

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

JavaMail快速入門(上)

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

  摘要
  這篇文章介紹創建基于java的email應用程序入門知識。假如你想創建你自己的email客戶端應用程序來代替Microsoft Outlook,或者創建一個基于Web的email系統來跟Hotmail叫板,那么你可以從這里開始。從JavaMail的一個不同角度出發,該文給出了一個談話email客戶端應用程序。
  在JavaMail中,你可以找到API以及其實現部分,從而用它開發功能全面的email客戶端應用程序。“email客戶端應用程序”引用了Microsoft Outlook的思想;然而,你可以寫你自己的Outlook來取而代之。但是,一個email客戶端程序不一定要駐留在一個客戶端機器上。事實上,它可以是一個在遠程服務器上運行的一個servlet或者EJB,終端用戶通過Web瀏覽器可以收發他們的email。在作者自己的寵物項目中,就使用了一個語音客戶端來讀取接收進來的消息。它是作者在“Talking Java!”中介紹的想法(在后面將有更多的介紹)的提煉。
  現在開始安裝和配置Javamail軟件。
  安裝
  假如你使用的是Java2企業版(J2EE)1.3,那么它已經自帶有JavaMail,因此不需要進行額外的安裝。但是假如你使用的是Java2標準版(J2SE)1.1.7及以后的版本,那么假如想要你的應用程序具備收發email的能力,下載并安裝以下兩個應用程序:
  l、JavaMail
  2、JavaBeans Activation Framework
  安裝很簡單,只需解壓下載的文件,并把所包含的jar文件添加到你機器的classpath下,以下是作者機器上的classpath:
  ;C:/Apps/Java/javamail-1.2/mail.jar;C:/Apps/Java
  /javamail-1.2/mailapi.jar;C:/Apps/Java/javamail-1.2
  /pop3.jar;C:/Apps/Java/javamail-1.2/smtp.jar;C:/Apps
  /Java/jaf-1.0.1/activation.jar
  mailapi.jar文件包含核心API類,而pop3.jar和smtp.jar文件包含各自的email協議實現部分。(在這篇文章中我們不使用imap.jar文件)。可以認為實現部分跟JDBC(Java數據庫連接)驅動程序相似,不過它是用于消息系統而不是用于數據庫而已。至于mail.jar文件,它包含了上面的每一個jar文件,因此,你可以在你的classpath中只包含mail.jar和activation.jar文件。
  Activation.jar文件答應你通過二進制數據流的形式處理MIME類型的訪問。在后面“不僅僅可以發送普通文本”這一部分會講到DataHandler類,你可以在那找到相關信息。
  至于記錄,本文的余下部分沒有對API做全面的講解;不過你可以學著去做一做。假如你想更多的了解API信息,你可以查看每個下載包中的PDF文件以及Javadoc。
  一旦你已經安裝了這個軟件,那么你需要知道你的email帳戶情況以便運行下面的這個例子。你需要知道你的ISP的SMTP服務器名和POP服務器名,你的email帳戶登錄名以及你的郵箱密碼。圖1表示的是作者在Microsoft Outlook中使用的具體情況:
   JavaMail快速入門(上)(圖一)
  圖1作者的Internet email設置
  通過SMTP發送email
  第一個例子告訴你怎樣通過SMTP發送一個基本的email消息。在下面,你將找到SimpleSender類,它從命令行讀取你的消息,然后調用一個單獨的方法send(…)來發送它們:
  package com.lotontech.mail;
  import javax.mail.*;
  import javax.mail.internet.*;
  import java.util.*;
  /**
  * A simple email sender class.
  */
  public class SimpleSender
  {
  /**
  * Main method to send a message given on the command line.
  */
  public static void main(String args[])
  {
  try
  {
  String smtpServer=args[0];
  String to=args[1];
  String from=args[2];
  String subject=args[3];
  String body=args[4];
  send(smtpServer, to, from, subject, body);
  }
  catch (Exception ex)
  {
  System.out.  +" smtpServer toAddress fromAddress subjectText bodyText");
  }
  System.exit(0);
  }
  下一步,如下所示運行SimpleSender,用你自己的SMTP替換你email設置中的smtp.myISP.net:
  java com.lotontech.mail.SimpleSender smtp.myISP.net bill@lotontech.com ben@lotontech.com "Hello" "Just to say Hello."
  假如它能正常工作起來的話,在接收端你將看到如圖2所示的內容
  JavaMail快速入門(上)(圖二)
  圖2 從SimpleSender讀取的消息 
  SimpleSender類主要由Send(…)方法完成。其代碼如下:
  /**
  * "send" method to send the message.
  */
  public static void send(String smtpServer, String to, String from
  , String subject, String body)
  {
  try
  {
  Properties props = System.getProperties();
  // -- Attaching to default
session, or we could start a new one --
  props.put("mail.smtp.host", smtpServer);
  Session session = Session.getDefaultInstance(props, null);
  // -- Create a new message --
  Message msg = new MimeMessage(session);
  // -- Set the FROM and TO fields --
  msg.setFrom(new InternetAddress(from));
  msg.setRecipients(Message.RecipientType.TO,
  InternetAddress.parse(to, false));
  // -- We could include CC recipients too --
  // if (cc != null)
  // msg.setRecipients(Message.RecipientType.CC
   // ,InternetAddress.parse(cc, false));
  // -- Set the subject and body text --
  msg.setSubject(subject);
  msg.setText(body);
  // -- Set some other header information --
  msg.setHeader("X-Mailer", "LOTONtechEmail");
  msg.setSentDate(new Date());
  // -- Send the message --
  Transport.send(msg);
  System.out.println("Message sent OK.");
  }
  catch (Exception ex)
  {
   ex.printStackTrace();
  }
   }
   }
  首先,請注重,你得到一個emailsession(java.mail.Session),沒有它你什么都做不了。在這個案例中,你調用了Sesion.getDefultInstance(…)來得到一個共享session,其它的桌面應用程序也可以使用它;你也可以通過Session.getInstance(…)方法建立一個新的session,它對于你的應用程序來說是唯一的。然后我們能夠證實email客戶端應用程序對每個用戶來說,其使用方法都是一樣的,比如它可以是一個用servlet實現的基于Web的email系統。
  建立一個session需要設置一些屬性;假如你通過SMTP發送消息,那么至少需要設置mail.smtp.host屬性。在API文檔中你可以找到其它的屬性。
  現在你有了一個session,創建了一個消息。在這個例子中,你就可以設置email地址信息、主題、正文了,所有這些都取自于命令行。你也可以設置一些頭信息,包括日期等,并且你還可以指定復制(CC)的收件人。
  最后,你通過javax.mail.Transport類發送消息。假如你想知道我們的emailsession,請看后面的消息構造器。
  不僅僅可以發送普通文本
  javax.mail.Message(繼續javax.mail.Part接口)類中的setText(…)方法把消息內容賦給所提供的字符串,把MIME設置為text/plain。
  但是,你不僅僅可以發送普通文本,你還可以通過setDateHandler(…)方法發送其它類型的內容。在大多數情況下,你能通過采用“其它類型內容”來指定文件附件,比如Word文檔,但是有趣的是,你檢查這里的代碼發現它發送一個Java序列化的對象:
  ByteArrayOutputStream byteStream=new ByteArrayOutputStream();
  ObjectOutputStream objectStream=new ObjectOutputStream(byteStream);
  objectStream.writeObject(theObject);
  msg.setDataHandler(new DataHandler( new ByteArrayDataSource( byteStream.toByteArray(), "lotontech/javaobject" )));
  在javax.mail.*包結構中你可能找不到DataHandler類,因為它屬于JavaBeans Activation Framework (JAF)的javax.activation包。JAF提供處理數據內容類型的機制,這種機制主要是針對Internet內容而言,也即MIME類型。
  假如你已經試驗過了以上的代碼,通過email來發送一個Java對象,你可能碰到定位ByteArrayDataSource類的問題,因為要么是mail.jar要么是activation.jar未被包含在程序里面??梢缘絁avaMail demo目錄下去查找一下。
  至于你一開始就感愛好的附件,你可以在DataHandler的構造器中建立一個javax.activation.FileDataSource實例來實現。當然,你不可能單獨發送一個文件;它可以作為一個文本消息的附件發送??赡苣阈枰斫舛嗖糠窒⒌母拍?,現在,我在接收email的環境下為你介紹這個概念。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产91精品久| 亚洲一区二区三区视频播放| www.久久色.com| 亚洲香蕉伊综合在人在线视看| 亚洲人成网站999久久久综合| 久久国产一区二区三区| 日本伊人精品一区二区三区介绍| 精品无码久久久久久国产| 国产精品91在线观看| 欧美最猛黑人xxxx黑人猛叫黄| 国产欧美日韩视频| 亚洲男人天堂视频| 国产精品久久电影观看| 91在线网站视频| 亚洲缚视频在线观看| 国产又爽又黄的激情精品视频| 国产深夜精品福利| 亚洲欧美一区二区三区四区| 日韩欧美在线网址| 精品国产自在精品国产浪潮| 国产精品黄页免费高清在线观看| 日韩av免费网站| 亚洲尤物视频网| 韩国国内大量揄拍精品视频| 国产精品热视频| 亚洲国产精品嫩草影院久久| 亚洲精品一区在线观看香蕉| zzijzzij亚洲日本成熟少妇| 欧美激情videos| 中文字幕一区日韩电影| 欧美老女人bb| 亚洲日韩欧美视频一区| 精品中文字幕在线2019| 成人性生交大片免费看视频直播| 人人做人人澡人人爽欧美| 91精品久久久久久久久不口人| 九色成人免费视频| 中文字幕日韩在线播放| 欧美黄网免费在线观看| 国产精品久久久久99| 国产视频精品久久久| 久久精品国产亚洲精品2020| 日韩欧美在线免费| 亚洲国产日韩欧美在线99| 欧美日本精品在线| 色偷偷噜噜噜亚洲男人| 久久国产精品影片| 热99久久精品| 97在线观看视频国产| 韩国视频理论视频久久| 欧美激情视频一区| 亚洲国产精品字幕| 激情懂色av一区av二区av| 欧美大学生性色视频| 国产精品美女免费视频| 国产欧美精品日韩精品| 久久99国产综合精品女同| 久久亚洲一区二区三区四区五区高| 91麻豆国产语对白在线观看| 国产精品第100页| 国产精品91在线观看| 久久久女人电视剧免费播放下载| 不用播放器成人网| 日本精品久久久久久久| 国产欧美精品一区二区三区介绍| 午夜美女久久久久爽久久| 午夜精品久久久久久99热软件| 精品国内产的精品视频在线观看| 日韩精品极品视频免费观看| 久久免费视频网| 日韩在线欧美在线国产在线| 91精品国产自产91精品| 91最新在线免费观看| 久久精品99国产精品酒店日本| 国产免费一区视频观看免费| 亚洲一区二区三区在线视频| 亚洲va久久久噜噜噜久久天堂| 日韩精品亚洲元码| 日韩中文字幕视频在线观看| 成人国产精品日本在线| 久久成人综合视频| 亚洲天堂av在线播放| 日韩福利在线播放| 欧美高清视频在线| 亚洲性生活视频在线观看| 久久五月天色综合| 高清日韩电视剧大全免费播放在线观看| 韩国三级日本三级少妇99| 国产精品免费网站| 欧美激情第6页| 欧美激情日韩图片| 亚洲最大成人在线| 91精品国产高清久久久久久91| 国产91|九色| 国产亚洲aⅴaaaaaa毛片| 国产亚洲视频在线观看| 国产一区二区三区丝袜| 国产成人亚洲综合91| 中文字幕少妇一区二区三区| 日本高清+成人网在线观看| 成人av色在线观看| 欧美高清电影在线看| 国产精品一区二区三区成人| 久久精品国产2020观看福利| 亚洲成av人影院在线观看| 久久久成人精品| 欧美大奶子在线| 亚洲第一中文字幕| 国产精品www色诱视频| 久久久亚洲天堂| 91在线无精精品一区二区| 中文字幕亚洲激情| 亚洲香蕉av在线一区二区三区| 性欧美xxxx视频在线观看| 亚洲黄色av女优在线观看| 精品一区二区亚洲| 亚洲国内精品在线| 久久久久一本一区二区青青蜜月| 久久精品色欧美aⅴ一区二区| 国产视频精品va久久久久久| 日韩欧美在线视频| 国产成人精品av| 国产91精品在线播放| www欧美xxxx| 91久久国产精品91久久性色| 日本不卡免费高清视频| 亚洲精品免费一区二区三区| 精品毛片网大全| 日韩精品在线免费观看视频| 国产成人+综合亚洲+天堂| 91久久久久久久久| 日韩影视在线观看| 亚洲午夜av久久乱码| 国产精品欧美日韩一区二区| 欧美亚洲国产日本| 懂色aⅴ精品一区二区三区蜜月| 欧美日韩国产一中文字不卡| 97在线看福利| 日韩欧美在线免费观看| 国产亚洲成精品久久| 国产精品久久久久aaaa九色| 国产精品一区二区三区在线播放| 精品久久久久久中文字幕大豆网| 久久精品91久久香蕉加勒比| 亚洲女在线观看| 亚洲国产精品久久| 欧美激情高清视频| 中文字幕9999| 国产精品国产三级国产专播精品人| 亚洲男女自偷自拍图片另类| 91国产精品电影| 中文字幕日韩在线播放| 在线免费观看羞羞视频一区二区| 久久男人的天堂| 亚洲v日韩v综合v精品v| 久久久久久伊人| 大量国产精品视频| 日本一本a高清免费不卡| 亚洲国产成人久久综合一区| 日韩人在线观看| 久久九九全国免费精品观看| 92国产精品视频| 91精品国产91久久久久久不卡| 欧美精品精品精品精品免费|