资讯·论坛·笑话大全·QQ表情·设为首页
发新话题
打印

[java] JavaMail应用:安装和配置常见问题的解答

JavaMail应用:安装和配置常见问题的解答

问. 我如何安装 JavaMail API 实现?
- o8 O# V/ T, |+ c, \0 e, C; Z我爱电脑技术社区--打造最好的电脑技术自学交流平台打造最好的电脑自学交流论坛6 m2 [0 G  N4 k8 [6 |/ E( u

1 M) W% Q, i( nwww.520diannao.com答:解压缩分发的 zip 文件,并编辑 CLASSPATH 环境变量以包含 mail.jar 文件,该文件包括在 JavaMail API 分发中。你也需要 JavaBeans Activation Framework(参见下面)的实现。参阅 README 文件(在分发中),获得其他细节和例子。
4 P% ^* F- s& ~6 l我爱电脑技术社区--打造最好的电脑技术自学交流平台
* @+ @& i5 @" p% h. s# {5 {; C
  x" A# o: T3 Jwww.520diannao.com问. JavaMail 是否包括所有必要的邮件服务器?
! y6 p5 V5 N2 R' _电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站
) L* B8 Q  n9 G7 @* e, F$ N1 s8 u- Bwww.520diannao.com
6 E* t5 _0 H1 W% z: N我爱电脑技术论坛答:不是,JavaMail API 包不包括任何邮件服务器。为了使用 JavaMail API 包,你将需要访问 IMAP 或 POP3 邮件服务器(用于阅读邮件)和/或 SMTP 邮件服务器(用于发送邮件)。这些邮件服务器通常由 Internet 服务提供商提供,或者作为组织网络基础结构的一部分。如果你不必访问这样的邮件服务器,请往下看。 我爱电脑技术论坛8 Q5 J. V2 m7 V$ C4 @

( r5 V9 s& i; l  x5 F我爱电脑技术论坛
7 P$ g5 H* Z. t* }电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站问. 从哪里可以获得必要的邮件服务器? www.520diannao.com4 B% }- `6 Z, A

( s# z" p/ a2 o. ?3 `( R8 S) V电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站4 {- s( `- Z/ ]
答:Sun Java System Messaging Server 可用于 Solaris 和 Windows 平台。华盛顿大学的 IMAP 服务器支持多种平台 (UNIX、32 位 Windows 等)。可从如下地址获取源代码:ftp://ftp.cac.washington.edu/imap/imap.tar.Z。其他的许多供应商提供了支持 Internet 标准的邮件服务器。可以从 IMAP Connection 和 Internet Mail Consortium 获得更多信息。
) T% d, S8 ?3 u' `1 E- }
6 a  {. f3 c) v. |( K1 E电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站
7 J8 r6 d. @; A2 h+ S- c8 J/ Mwww.520diannao.com问. 我应该使用什么主机名、用户名或密码? www.520diannao.com3 C7 Q/ y* x2 v3 F& c0 k
打造最好的电脑自学交流论坛/ Z1 b8 X+ X# K% C

8 }$ o1 |9 M3 w% p6 \  r我爱电脑技术社区--打造最好的电脑技术自学交流平台答:我们不提供邮件服务器让你使用。你必须使用自己的邮件服务器,或者使用 Internet 服务提供商或你所工作的公司提供的邮件服务器。网络管理员可能给你一些必要的信息用于配置 JavaMail,以便同邮件服务器一起工作。 打造最好的电脑自学交流论坛, l0 _0 u: W! T0 S/ H

3 ^% q! G  U% i! a9 K我爱电脑技术社区--打造最好的电脑技术自学交流平台www.520diannao.com( m1 P2 G8 W/ c) b) H
问. 我如何配置 JavaMail 通过代理服务器工作? : }3 ^0 o) b8 g2 U8 p$ |1 V
/ D; N6 q2 [1 z! s$ k9 i
# z" c# _  t( ~% \' s  n! p$ c( ~
答:大多数代理服务器只支持 HTTP 协议。JavaMail 没有使用 HTTP 协议来阅读或发送邮件。使用代理服务器的一个主要原因是为了允许企业网络中的 HTTP 请求通过企业防火墙。防火墙通常会阻止对 Internet 的大多数访问,但允许来自代理服务器的请求通过。此外,企业网络内部的邮件服务器将为邮件执行类似的功能,通过 SMTP 接收消息,然后将它们转发到 Internet 上的最终目的地,以及接收传入的消息,然后将它们发送到合适的内部邮件服务器。
. {4 `  X1 ~4 ~! S. k6 F  Awww.520diannao.com我爱电脑技术论坛$ [2 r6 E; W4 y5 J+ X3 |* T3 M+ T
我爱电脑技术论坛( N$ ]* u  e$ E0 I' Q
如果你的代理服务器支持 SOCKS V4 或 V5 协议 (http://www.socks.nec.com/aboutsocks.html, RFC1928),并允许匿名连接,可以告诉 Java 运行时把所有的 TCP socket 直接连接到 SOCKS 服务器。参阅 http://java.sun.com/j2se/1.4/docs/guide/net/properties.html,获取 socksProxyHost 和 socksProxyPort 属性的最新文档。这些是系统级属性,而不是 JavaMail 会话属性。当调用应用程序时,它们可以从命令行中设置,例如:java -DsocksProxyHost=myproxy ...。这个工具可用于指出从 JavaMail 到 SOCKS 代理服务器进行 SMTP、IMAP 和 POP3 通信。注意,设置这些属性将告诉 所有 TCP socket 连接到 SOCKS 代理,在应用程序的其他方面上,这可能会带来负面影响。
+ m" V) c: S  D9 P) h7 t我爱电脑技术社区--打造最好的电脑技术自学交流平台打造最好的电脑自学交流论坛% a" W3 l4 m# F6 u6 _5 o9 t# T& {8 H
电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站9 L) I) v+ F/ q; g
假如没有这样的 SOCKS 服务器,如果想使用 JavaMail 来直接访问防火墙外部的邮件服务器,那将需要配置防火墙来允许这一访问。一个简单的 HTTP 代理 Web 服务器是足够的。 打造最好的电脑自学交流论坛$ K; Z1 g: O5 \# p) Q) l# Z2 k, o# S

/ p: k& Y% i; z' G# x我爱电脑技术社区--打造最好的电脑技术自学交流平台
$ o' j) S! }; s/ N问. 如何在 Windows NT 中设置 CLASSPATH?
4 y, X- K' s. v7 `. f0 zwww.520diannao.com
; ]( j7 T# v: A/ l- [打造最好的电脑自学交流论坛
7 A0 L$ z; ?. ~1 C6 H我爱电脑技术社区--打造最好的电脑技术自学交流平台答:详细说明可从 这里 获得。 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站" H' v" Q  ^9 N2 ]
电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站+ Y% w9 z: U* o0 D2 B

+ V+ h2 [! c: L6 k' f我爱电脑技术社区--打造最好的电脑技术自学交流平台问. 当试图在 Linux 中运行程序时,得到了非常奇怪的错误消息,而且程序运行失败了。错误在哪里?
3 g; U7 f: d4 X7 j  M0 H: g打造最好的电脑自学交流论坛
6 j: z+ l9 p, I5 `1 L电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站/ n1 i1 B, Z' B9 i
答:通常,错误消息看起来像下面这样:
9 K+ o  X2 C! @% q5 C7 T打造最好的电脑自学交流论坛www.520diannao.com1 \! r& o  d; W
电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站, b- ^& q2 F+ i2 e/ k
Exception in thread "main" 打造最好的电脑自学交流论坛  v3 r! Z0 ]6 H/ ^- ]- t+ ^4 D

& g4 S8 y0 e$ r; O0 s4 A我爱电脑技术社区--打造最好的电脑技术自学交流平台
' P$ h" ^& e' [6 q2 `, [我爱电脑技术论坛java.lang.VerifyError:(Class:com/sun/mail/pop3/POP3Store, 打造最好的电脑自学交流论坛; J0 t( P4 ~8 f. \' `" y
www.520diannao.com) B; ~3 ?. l3 v5 L& Z  d
我爱电脑技术社区--打造最好的电脑技术自学交流平台  [' k3 {5 v0 Q) F9 r4 g9 m1 H
method: finalize Signature :()V)
; g* E0 n, W) p打造最好的电脑自学交流论坛电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站+ l- K! H& Y# V9 y$ d
我爱电脑技术论坛* E( x! A, B* D& o1 L
Illegal use of nonvirtual function call 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站# @( B. Z) X: ~$ k; Z* B

+ x: \9 G+ U1 l  v打造最好的电脑自学交流论坛
( W; i7 I: O8 r. {问题是由于在 Linux 上,使用的 unzip 命令是有 bug 的版本,这样解压缩 JavaMail 下载包时,unzip 命令破坏了 mail.jar 文件。获取更新版本的 unzip 命令或使用 JDK 的 jar 命令来解压缩下载包。 4 u" b* t/ B+ {# V* F  d

% O4 A$ ?6 G* o+ L) t9 W0 d我爱电脑技术论坛打造最好的电脑自学交流论坛- o, E* l) Y4 g
问. 在运行于 SecurityManager 下面的应用程序中,我如何使用 JavaMail;我必须授予应用程序和 JavaMail 什么权限? www.520diannao.com# I3 D& K: c: ^
我爱电脑技术社区--打造最好的电脑技术自学交流平台$ q5 }" r& P! W  c" b

9 f) V, Y2 G4 {# B我爱电脑技术论坛答:在具有 SecurityManager 的 JDK 1.2(或更新版本)中,当使用 JavaMail 时,JavaMail 读取 mail.jar 文件中的配置文件有时会失败。在从 activation.jar 文件中读取配置文件时,JavaBeans Activation Framework 可能也有相同的问题。这些默认配置文件是作为“资源”文件存储的,并且存储在 jar 文件的 META-INF 目录中。
  V  M3 g" V; h0 ~) |. o, B, twww.520diannao.com
( g8 U# x3 |3 J3 ~电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站
( }- W, N6 H! n8 ~8 \电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站有许多调试技术可用于决定这是否是个问题。设置 Session 属性“mail.debug”为 true(或调用 session.setDebug(true)),将导致 JavaMail 在试图加载各个配置文件时打印调试消息。形如“DEBUG: cant load default providers file”(DEBUG: 不能加载默认提供程序文件) 的消息指出这个问题可能存在。同样,设置 System 属性“javax.activation.debug”为“true”(例如,通过使用 "java -Djavax.activation.debug=true ..." 来运行程序),将导致 JAF 在试图加载各个资源文件时打印调试消息。最后,通过设置 system 属性“java.security.debug” 为“access:failure”(例如,通过使用“java -Djava.security.debug=access:failure ...”来运行程序),JDK 可以产生有用的调试输出。

TOP

除了读取配置文件的必要权限外,应用程序(和 JavaMail)也将需要一定的权限才可以连接到它使用的邮件服务器。如果应用程序使用 System 属性来配置 JavaMail(例如,像许多 JavaMail 演示程序所做的那样,通过传递从 System.getProperties() 中返回的 Properties 对象到 Session 构造函数),它也将需要一定的权限才可以使用 System Properties 对象。另外,应用程序可以使用自己的 Properties 对象,以及确信设置 "mail.from" 属性 或 "mail.user" 和 "mail.host" 属性(参见 InternetAddress.getLocalAddress() 方法)。 我爱电脑技术社区--打造最好的电脑技术自学交流平台# X0 l* L" y, }& _# p* v8 ^  K

& c- {6 v5 a% c* \6 I! N; V3 ?! r打造最好的电脑自学交流论坛
! z4 ~6 {5 \: h7 f我爱电脑技术社区--打造最好的电脑技术自学交流平台在 JDK 1.2 SecurityManager 中,为了使应用程序能够使用 JavaMail,应用程序、JavaMail 和 JAF 将需要某些权限,比如下面的一些权限(一定要使用适当的值替换主机名和路径名);把这些权限添加到应用程序使用的安全策略文件中。 我爱电脑技术论坛' t) h5 D; o3 L. J! o4 J* n+ L

8 }8 `! f4 C. t4 P9 B打造最好的电脑自学交流论坛电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站' [* Y) p- H- ]' ]( \4 k' ^$ W

1 [9 h" ?) e( ?+ ?& {- t: T. Hgrant { 我爱电脑技术社区--打造最好的电脑技术自学交流平台; \' U, b- M* C0 y# {4 H0 t& o, L
电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站  P9 t7 I$ ?/ D$ `1 D! T
    // following two permissions allow
+ M6 }# D! F; P我爱电脑技术社区--打造最好的电脑技术自学交流平台www.520diannao.com& B% }/ G7 }, T8 M
    // access to default config files 我爱电脑技术论坛' j0 q8 q* }4 s  d" q! C: B3 c  E: T+ ~

9 P% J: q3 \/ O4 Y' owww.520diannao.com    permission java.io.FilePermission
) {& h1 K6 S: [& g' m我爱电脑技术论坛/ s  t' U2 J+ ^, p% d+ x6 f
   "/path/to/mail.jar", "read"; 我爱电脑技术社区--打造最好的电脑技术自学交流平台+ Q8 c! a% p- o8 _- [8 C

3 Y) x6 z# K& a  E$ L3 Y5 H0 x电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站    permission java.io.FilePermission 我爱电脑技术社区--打造最好的电脑技术自学交流平台. g# H& O1 w3 h' E1 q& x) @( h
我爱电脑技术社区--打造最好的电脑技术自学交流平台6 S% S1 _2 l* B3 R: C( X
   "/path/to/activation.jar", "read";
9 H1 K: H# s+ q9 N9 x我爱电脑技术社区--打造最好的电脑技术自学交流平台电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站" c% _5 `" l( L+ \5 y/ a
    // following to use SMTP 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站* h. T: U$ X# ~6 i
我爱电脑技术论坛0 w- M/ M5 D" {
    permission java.net.SocketPermission " B6 [+ U: o, L

! [/ w+ _0 q4 v( S/ a  Y- J* u' ]www.520diannao.com   "SMTPHOST:25", "connect,resolve";
* [9 I) Y2 X. G6 t& w5 M* [: o打造最好的电脑自学交流论坛
& c2 ^2 A/ ~. r9 ^# w" v7 `我爱电脑技术社区--打造最好的电脑技术自学交流平台    // following to use IMAP 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站, c* ?* _. g+ ^/ g8 c0 y
我爱电脑技术论坛5 l. P% n; b/ g$ q/ L: g* v/ N
    permission java.net.SocketPermission
* N+ j5 p/ ?  d) V3 r我爱电脑技术论坛
2 i+ P0 `2 Z5 _3 U打造最好的电脑自学交流论坛   "IMAPHOST:143", "connect,resolve"; 8 ?) x! A9 l/ I0 b

* M* r" ?/ y  T0 S% @* h    // following to use POP3 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站" N& g2 V2 v& u- C; m3 C8 T
打造最好的电脑自学交流论坛: p& o3 C, z7 n3 p* R; O; k
    permission java.net.SocketPermission
/ G! h/ r. j2 @打造最好的电脑自学交流论坛
5 T  X! L8 k4 f$ q: _  Mwww.520diannao.com   "POP3HOST:110", "connect,resolve"; 打造最好的电脑自学交流论坛' w/ D+ V1 A3 _% c4 R

, v2 ~2 ?5 z$ E/ O8 ?: @, e打造最好的电脑自学交流论坛    // following needed if System.getProperties() is used 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站$ J( t8 f4 o) l8 J& e' ~3 h

  u* d0 g8 ]4 C, L, K我爱电脑技术论坛    permission java.util.PropertyPermission 我爱电脑技术社区--打造最好的电脑技术自学交流平台; Y  f$ z% j" }% H* {/ l! N; [) b4 o
我爱电脑技术社区--打造最好的电脑技术自学交流平台) @3 q  A" A4 [! r/ r, L+ a) b
   "*", "read,write";
' \% G5 ]- A  f+ i( f. N% w" |我爱电脑技术论坛打造最好的电脑自学交流论坛" z& |2 |& [) I) Y) h; C% S# H
  };
1 C" V; v% g  Q) w- M( ?2 g: zwww.520diannao.com
% }6 Q& S$ H: C1 G' N打造最好的电脑自学交流论坛打造最好的电脑自学交流论坛* s+ z/ h$ M. c( b) ~9 S8 B: q
我爱电脑技术论坛5 ]$ \5 k# Y8 `
问. 如何配置 Web 服务器来运行 JavaMail 演示 servlet? 打造最好的电脑自学交流论坛( d. ?2 b4 K& _4 p/ o7 f

9 M; Y2 b) ]' q/ c  U% ~# A& N' J电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站我爱电脑技术社区--打造最好的电脑技术自学交流平台, J% j  U  U( n/ }
答:针对以下 Web 服务器的指导说明可从这里获得:
  z' G6 Q' {6 y& d3 Z我爱电脑技术社区--打造最好的电脑技术自学交流平台
9 Q$ @8 w" W1 `2 P: l我爱电脑技术论坛; _7 K2 o- p" P7 h. N
Tomcat
$ v$ h* Z5 |! ?www.520diannao.com电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站6 Y- K6 y* I7 d" Y
我爱电脑技术社区--打造最好的电脑技术自学交流平台/ R' m3 a$ R; G! b$ `# h! q" Y
Apache with JServ 我爱电脑技术论坛/ f+ B$ r  W7 Q- ~

& S0 ]$ W7 s9 Z$ F打造最好的电脑自学交流论坛
' @! T' C: F! B4 |  |2 ewww.520diannao.comiPlanet Web Server
5 |0 y& o% x2 r: x1 {电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站www.520diannao.com. e8 J0 w9 Y. P+ R+ g0 \

% @- B1 Y: s1 d8 v; j7 Y3 U我爱电脑技术社区--打造最好的电脑技术自学交流平台Java Web Server 我爱电脑技术论坛$ ~& v: m3 L: K& l" N1 I# L5 ^

7 q6 j8 w7 p1 C% |- ]我爱电脑技术论坛
9 E. n4 H! i+ O# E- L, ~$ R$ D, L我爱电脑技术论坛问. 当在 servlet 中使用 JavaMail 时,未找到任何的 JavaMail 类。我已经在服务器的 CLASSPATH 中添加了 mail.jar?
+ N1 @5 Y- c2 j. @- t: M我爱电脑技术论坛我爱电脑技术社区--打造最好的电脑技术自学交流平台8 r  M; J, I- `3 x) J, z! y
; _- \1 v7 s0 J7 _( G; S5 R
答:当改变 CLASSPATH 时,通常有必要完全重启 Web 服务器。
$ r" x: y8 H" q7 [7 O3 R! x& owww.520diannao.com
: v; q: y' F+ @电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站
& D' X1 G: X0 x, S( P8 W" {: bwww.520diannao.com问. 我的 servlet 可以找到 JavaMail 类,但 JavaMail 抱怨它不能找到针对“smtp”或“imap”的服务提供程序或地址类型“rfc822”。
- V! D: x, h! _5 D& a: {, U& z- ^+ ^
打造最好的电脑自学交流论坛( D% I$ x5 p% c( m
答:通常这是因为 JavaMail 无法访问 mail.jar 中的配置文件,而这可能是由于安全权限问题造成的;参见 本条目,获取更多的细节。也保证你没有提取 mail.jar 内容;在服务器的 CLASSPATH 中,应该包括未更改的 mail.jar 文件。
$ H  }4 g* k4 \' ]; i; ]打造最好的电脑自学交流论坛
. T3 {+ Y$ B% Q( n我爱电脑技术社区--打造最好的电脑技术自学交流平台我爱电脑技术论坛2 O8 L! N; m( u% J6 k
问. 在哪里可以找到 jws.jar?我已经安装了 Java Web Server 2.0,并试图运行 JavaMailServlet。README 文件指示我在 CLASSPATH 中添加 jws.jar。
# L+ H6 F7 E0 x" L( c1 T! [+ C: E打造最好的电脑自学交流论坛www.520diannao.com/ q# _; Z$ M( ]2 U2 p7 Y

) t- d* F' Q9 q- U5 r电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站答:jws.jar 不再与 Java Web Server 一起发行(在以前版本中,它们是一起发行的),因此不需要在 CLASSPATH 中添加它。只要在 CLASSPATH 中添加 mail.jar 和 activation.jar,然后重启 Java Web Server。

TOP

发新话题