快速业务通道

JavaMail安装和配置常见问题解答 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
) 时间:2010-05-13

问. 在运行于SecurityManager下面的应用程序中,我如何使用JavaMail;我必须授予应用程序和JavaMail什么权限?

答:在具有SecurityManager的JDK 1.2(或更新版本)中,当使用JavaMail 时,JavaMail 读取 mail.jar文件中的配置文件有时会失败。在从 activation.jar文件中读取配置文件时,JavaBeans Activation Framework 可能也有相同的问题。这些默认配置文件是作为“资源”文件存储的,并且存储在jar文件的META-INF 目录中。

有许多调试技术可用于决定这是否是个问题。设置 Session 属性“mail.debug”为 true(或调用session.setDebug(true)),将导致 JavaMail 在试图加载各个配置文件时打印调试消息。形如“DEBUG: can''t 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 可以产生有用的调试输出。

除了读取配置文件的必要权限外,应用程序(和JavaMail)也将需要一定的权限才可以连接到它使用的邮件服务器。如果应用程序使用System 属性来配置 JavaMail(例如,像许多 JavaMail 演示程序所做的那样,通过传递从 System.getProperties() 中返回的Properties对象到Session 构造函数),它也将需要一定的权限才可以使用System Properties对象。另外,应用程序可以使用自己的Properties对象,以及确信设置 "mail.from" 属性或"mail.user" 和"mail.host" 属性(参见 InternetAddress.getLocalAddress() 方法)。

在JDK 1.2 SecurityManager 中,为了使应用程序能够使用JavaMail,应用程序、JavaMail 和JAF将需要某些权限,比如下面的一些权限(一定要使用适当的值替换主机名和路径名);把这些权限添加到应用程序使用的安全策略文件中。

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 服务器来运行 JavaMail 演示 servlet?

答:针对以下 Web 服务器的指导说明可从这里获得:

Tomcat

Apache with JServ

iPlanet Web Server

Java Web Server

问. 当在servlet 中使用JavaMail 时,未找到任何的JavaMail 类。我已经在服务器的CLASSPATH 中添加了 mail.jar?

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号