javamail应用五(详解PropertiesSession)

javamail应用五(详解PropertiesSession)

ID:37921682

大小:25.59 KB

页数:5页

时间:2019-06-02

javamail应用五(详解PropertiesSession)_第1页
javamail应用五(详解PropertiesSession)_第2页
javamail应用五(详解PropertiesSession)_第3页
javamail应用五(详解PropertiesSession)_第4页
javamail应用五(详解PropertiesSession)_第5页
资源描述:

《javamail应用五(详解PropertiesSession)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.Properties(属性对象)由于JavaMail需要和邮件服务器进行通信,这就要求程序提供许多诸如服务器地址、端口、用户名、密码等信息,JavaMail通过Properties对象封装这些属性西信息。如下面的代码封装了两个属性信息:Propertiesprops=newProperties();props.put("mail.smtp.host","smtp.sina.com.cn");props.put("mail.smtp.auth","true");针对不同的的邮件协议,JavaMail规定了服务提

2、供者必须支持一系列属性,下表是针对SMTP协议的一些常见属性(属性值都以String类型进行设置,属性类型栏仅表示属性是如何被解析的):属性名属性类型说明mail.stmp.hostStringSMTP服务器地址,如smtp.sina.com.cnmail.stmp.portintSMTP服务器端口号,默认为25mail.stmp.authbooleanSMTP服务器是否需要用户认证,默认为falsemail.stmp.userStringSMTP默认的登陆用户名mail.stmp.fromString默认的邮件

3、发送源地址mail.stmp.socketFactory.classStringsocket工厂类类名,通过设置该属性可以覆盖提供者默认的实现,必须实现javax.net.SocketFactory接口mail.stmp.socketFactory.portint指定socket工厂类所用的端口号,如果没有规定,则使用默认的端口号mail.smtp.socketFactory.fallbackboolean设置为true时,当使用指定的socket类创建socket失败后,将使用java.net.Socket创建

4、socket,默认为truemail.stmp.timeoutintI/O连接超时时间,单位为毫秒,默认为永不超时其他几个协议也有类似的一系列属性,如POP3的mail.pop3.host、mail.pop3.port以及IMAP的mail.imap.host、mail.imap.port等。更详细的信息请查看com.sun.mail.smtp、com.sun.mail.pop3和com.sun.mail.imap这三个包的Javadoc:http://java.sun.com/products/javamail

5、/javadocs/index.html。2.Session(会话对象)Session是一个很容易被误解的类,这归咎于混淆视听的类名。千万不要以为这里的Session像HttpSession一样代表真实的交互会话,但创建Session对象时,并没有对应的物理连接,它只不过是一对配置信息的集合。Session的主要作用包括两个方面: 1.接收各种配置属性信息:通过Properties对象设置的属性信息;2.初始化JavaMail环境:根据JavaMail的配置文件,初始化JavaMail环境,以便通过Session

6、对象创建其他重要类的实例。所以,如果把Session更名为Configure也许更容易理解一些。Session通过JavaMail配置文件以及程序中设置的Properties对象构建一个邮件处理环境,后续的处理将在Session基础上进行。Session拥有多个静态工厂方法用于创建Session实例。getInstance方法1.staticSessiongetDefaultInstance(Propertiesprops,Authenticatorauthenticator):当JVM中已经存在默认的Sessi

7、on实例中,直接返回这个实例,否则创建一个新的Session实例,并将其作为JVM中默认Session实例。这个API很诡异,我们将对它进行详细的讲解。由于这个默认Session实例可以被同一个JVM所有的代码访问到,而Session中本身又可能包括密码、用户名等敏感信息在内的所有属性信息,所以后续调用也必须传入和第一次相同的Authenticator实例,否则将抛出java.lang.SecurityException异常。如果第一次调用时Authenticator入参为null,则后续调用通过null的Aut

8、henticator入参或直接使用getDefaultInstance(Propertiesprops)即可返回这个默认的Session实例。值得一提的是,虽然后续调用也会传入Properties,但新属性并不会起作用,如果希望采用新的属性值,则可以通过getDefaultInstance(Propertiesprops)创建一个新的Session实例达到目的。Authe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。