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

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

JavaMail常見問題之安裝和配置問題

2019-11-18 11:47:19
字體:
供稿:網(wǎng)友

  問. 我如何安裝 javaMail API 實現(xiàn)?
  答:解壓縮分發(fā)的 zip 文件,并編輯 CLASSPATH 環(huán)境變量以包含 mail.jar 文件,該文件包括在 JavaMail API 分發(fā)中。你也需要 JavaBeans Activation Framework(參見下面)的實現(xiàn)。參閱 README 文件(在分發(fā)中),獲得其他細(xì)節(jié)和例子。
  問. JavaMail 是否包括所有必要的郵件服務(wù)器?
  答:不是,JavaMail API 包不包括任何郵件服務(wù)器。為了使用 JavaMail API 包,你將需要訪問 IMAP 或 POP3 郵件服務(wù)器(用于閱讀郵件)和/或 SMTP 郵件服務(wù)器(用于發(fā)送郵件)。這些郵件服務(wù)器通常由 Internet 服務(wù)提供商提供,或者作為組織網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)的一部分。假如你不必訪問這樣的郵件服務(wù)器,請往下看。
  問. 從哪里可以獲得必要的郵件服務(wù)器?
  答:Sun Java System Messaging Server 可用于 Solaris 和 Windows 平臺。華盛頓大學(xué)的 IMAP 服務(wù)器支持多種平臺 (UNIX、32 位 Windows 等)??蓮娜缦碌刂帆@取源代碼:FTP://ftp.cac.washington.edu/imap/imap.tar.Z。其他的許多供給商提供了支持 Internet 標(biāo)準(zhǔn)的郵件服務(wù)器??梢詮?IMAP Connection 和 Internet Mail Consortium 獲得更多信息。
  問. 我應(yīng)該使用什么主機(jī)名、用戶名或密碼?
  答:我們不提供郵件服務(wù)器讓你使用。你必須使用自己的郵件服務(wù)器,或者使用 Internet 服務(wù)提供商或你所工作的公司提供的郵件服務(wù)器。網(wǎng)絡(luò)治理員可能給你一些必要的信息用于配置 JavaMail,以便同郵件服務(wù)器一起工作。
  問. 我如何配置 JavaMail 通過代理服務(wù)器工作?
  答:大多數(shù)代理服務(wù)器只支持 HTTP 協(xié)議。JavaMail 沒有使用 HTTP 協(xié)議來閱讀或發(fā)送郵件。使用代理服務(wù)器的一個主要原因是為了答應(yīng)企業(yè)網(wǎng)絡(luò)中的 HTTP 請求通過企業(yè)防火墻。防火墻通常會阻止對 Internet 的大多數(shù)訪問,但答應(yīng)來自代理服務(wù)器的請求通過。此外,企業(yè)網(wǎng)絡(luò)內(nèi)部的郵件服務(wù)器將為郵件執(zhí)行類似的功能,通過 SMTP 接收消息,然后將它們轉(zhuǎn)發(fā)到 Internet 上的最終目的地,以及接收傳入的消息,然后將它們發(fā)送到合適的內(nèi)部郵件服務(wù)器。
  假如你的代理服務(wù)器支持 SOCKS V4 或 V5 協(xié)議 (http://www.socks.nec.com/aboutsocks.Html, RFC1928),并答應(yīng)匿名連接,可以告訴 Java 運行時把所有的 TCP socket 直接連接到 SOCKS 服務(wù)器。參閱 http://java.sun.com/j2se/1.4/docs/guide/net/PRoperties.html,獲取 socksProxyHost 和 socksProxyPort 屬性的最新文檔。這些是系統(tǒng)級屬性,而不是 JavaMail 會話屬性。當(dāng)調(diào)用應(yīng)用程序時,它們可以從命令行中設(shè)置,例如:java -DsocksProxyHost=myproxy ...。這個工具可用于指出從 JavaMail 到 SOCKS 代理服務(wù)器進(jìn)行 SMTP、IMAP 和 POP3 通信。注重,設(shè)置這些屬性將告訴 所有 TCP socket 連接到 SOCKS 代理,在應(yīng)用程序的其他方面上,這可能會帶來負(fù)面影響。
  假如沒有這樣的 SOCKS 服務(wù)器,假如想使用 JavaMail 來直接訪問防火墻外部的郵件服務(wù)器,那將需要配置防火墻來答應(yīng)這一訪問。一個簡單的 HTTP 代理 Web 服務(wù)器是足夠的。
  問. 如何在 Windows NT 中設(shè)置 CLASSPATH?
  答:具體說明可從 這里 獲得。
  問. 當(dāng)試圖在 linux 中運行程序時,得到了非常希奇的錯誤消息,而且程序運行失敗了。錯誤在哪里?
  答:通常,錯誤消息看起來像下面這樣:
  Exception in thread "main"
  java.lang.VerifyError:(Class:com/sun/mail/pop3/POP3Store,
  method: finalize Signature :()V)
  Illegal use of nonvirtual function call
  問題是由于在 Linux 上,使用的 unzip 命令是有 bug 的版本,這樣解壓縮 JavaMail 下載包時,unzip 命令破壞了 mail.jar 文件。獲取更新版本的 unzip 命令或使用 JDK 的 jar 命令來解壓縮下載包。
  問. 在運行于 SecurityManager 下面的應(yīng)用程序中,我如何使用 JavaMail;我必須授予應(yīng)用程序和 JavaMail 什么權(quán)限?
  答:在具有 SecurityManager 的 JDK 1.2(或更新版本)中,當(dāng)使用 JavaMail 時,JavaMail 讀取 mail.jar 文件中的配置文件有時會失敗。在從 activation.jar 文件中讀取配置文件時,JavaBeans Activation Framework 可能也有相同的問題。這些默認(rèn)配置文件是作為“資源”文件存儲的,并且存儲在 jar 文件的 META-INF 目錄中。
  有許多調(diào)試技術(shù)可用于決定這是否是個問題。設(shè)置 session 屬性“mail.debug”為 true(或調(diào)用 session.setDebug(true)),將導(dǎo)致 JavaMail 在試圖加載各個配置文件時打印調(diào)試消息。形如“DEBUG: can't load default providers file”(DEBUG: 不能加載默認(rèn)提供程序文件) 的消息指出這個問題可能存在。同樣,設(shè)置 System 屬性“javax.activation.debug”為“true”(例如,通過使用 "java -Djavax.activation.debug=true ..." 來運行程序),將導(dǎo)致 JAF 在試圖加載各個資源文件時打印調(diào)試消息。最后,通過設(shè)置 system 屬性“java.security.debug” 為“access:failure”(例如,通過使用“java -Djava.security.debug=access:failure ...”來運行程序),JDK 可以產(chǎn)生有用的調(diào)試輸出。
  除了讀取配置文件的必要權(quán)限外,應(yīng)用程序(和 JavaMail)也將需要一定的權(quán)限才可以連接到它使用的郵件服務(wù)器。假如應(yīng)用程序使用 System 屬性來配置 JavaMail(例如,像許多 JavaMail 演示程序所做的那樣,通過傳遞從 System.getProperties() 中返回的 Properties 對象到 Session 構(gòu)造函數(shù)),它也將需要一定的權(quán)限才可以使用 System Properties 對象。另外,應(yīng)用程序可以使用自己的 Properties 對象,以及確信設(shè)置 "mail.from" 屬性 或 "mail.user" 和 "mail.host" 屬性(參見 InternetAddress.getLocalAddress() 方法)。
  在 JDK 1.2 SecurityManager 中,為了使應(yīng)用程序能夠使用 JavaMail,應(yīng)用程序、JavaMail 和 JAF 將需要某些權(quán)限,比如下面的一些權(quán)限(一定要使用適當(dāng)?shù)闹堤鎿Q主機(jī)名和路徑名);把這些權(quán)限添加到應(yīng)用程序使用的安全策略文件中。
  grant {
    // following two permissions allow
    // access to default config files
    permission java.io.FilePermission
   "/path/to/mail.jar", "read";
    permission java.io.FilePermission
   "/path/to/activation.jar", "read";
    // following to use SMTP
    permission java.net.SocketPermission
   "SMTPHOST:25", "connect,resolve";
    // following to use IMAP
    permission java.net.SocketPermission
   "IMAPHOST:143", "connect,resolve";
    // following to use POP3
    permission java.net.SocketPermission
   "POP3HOST:110", "connect,resolve";
    // following needed if System.getProperties() is used
    permission java.util.PropertyPermission
   "*", "read,write";
  };
  
  問. 如何配置 Web 服務(wù)器來運行 JavaMail 演示 servlet?
  答:針對以下 Web 服務(wù)器的指導(dǎo)說明可從這里獲得:
   Tomcat
   Apache with JServ
   iPlanet Web Server
   Java Web Server
  問. 當(dāng)在 servlet 中使用 JavaMail 時,未找到任何的 JavaMail 類。我已經(jīng)在服務(wù)器的 CLASSPATH 中添加了 mail.jar?
  答:當(dāng)改變 CLASSPATH 時,通常有必要完全重啟 Web 服務(wù)器。
  問. 我的 servlet 可以找到 JavaMail 類,但 JavaMail 抱怨它不能找到針對“smtp”或“imap”的服務(wù)提供程序或地址類型“rfc822”。
  答:通常這是因為 JavaMail 無法訪問 mail.jar 中的配置文件,而這可能是由于安全權(quán)限問題造成的;參見 本條目,獲取更多的細(xì)節(jié)。也保證你沒有提取 mail.jar 內(nèi)容;在服務(wù)器的 CLASSPATH 中,應(yīng)該包括未更改的 mail.jar 文件。
  問. 在哪里可以找到 jws.jar?我已經(jīng)安裝了 Java Web Server 2.0,并試圖運行 JavaMailServlet。README 文件指示我在 CLASSPATH 中添加 jws.jar。
  答:jws.jar 不再與 Java Web Server 一起發(fā)行(在以前版本中,它們是一起發(fā)行的),因此不需要在 CLASSPATH 中添加它。只要在 CLASSPATH 中添加 mail.jar 和 activation.jar,然后重啟 Java Web Server。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 枣强县| 连江县| 吉木萨尔县| 阿拉善左旗| 长葛市| 河北区| 临猗县| 太仓市| 双鸭山市| 涿鹿县| 汝南县| 社会| 玉田县| 邓州市| 明星| 赫章县| 千阳县| 彩票| 堆龙德庆县| 平阳县| 阜平县| 定日县| 连平县| 阳泉市| 常山县| 康乐县| 灵武市| 望江县| 清新县| 来凤县| 中山市| 永福县| 镇远县| 秦安县| 康马县| 五台县| 大石桥市| 绍兴县| 昂仁县| 丽江市| 同心县|