`
wang_decheng
  • 浏览: 49032 次
  • 性别: Icon_minigender_1
  • 来自: 烟台
文章分类
社区版块
存档分类
最新评论

javaMail中session的getDefaultInstance和getInstance的区别

阅读更多

何谓getDefaultInstance? 从处理流程中可以看出,首先是从缓存中查找是否有properties存在 如果存在,则加载默认的properties 如果不存在才加载用户自己定义的properties, 所以当一个应用为每个用户独立创建properties的时候,还是应该调用getInstance, 除非你希望有一个默认的properties让用户使用

问题找到了,因为它会首先去内存和系统文件中去找properties,所以不管我在页面改几次数据,其实在后台中生成session时都和系统启动时的一样,所以在MailUtil.sendTextMessage(mailSession,RptTaskMailConfig.Sender, receiver,null,mail_subject,mail_content,"GB2312",null);时session里的sender和传入的sender不一致,因此出错,修改Session.getDefaultInstance(props, authentic);Session.getInstance(props, authentic);后,可以正确发送修改帐号,密码等资料后的邮件.OK

最后再补充一下,session.getdefaultinstance和getinstance的区别 :

如果想要同时使用两个帐号发送javamail,比如使用1@a.com发送1#邮件,使用2@a.com发送2#邮件,这时候,你就需要同时创建两个java.mail.Session对象。但是如果你仍然使用Session.getDefaultInstance创建session对象的话,你会发现,第二个username:2@a.com创建的session永远都和第一个一样,这是为什么呢?因为,getDefaultInstance是真正单例模式,而且,里面的username和password属性是final型的,无法更改。所以,你会发现两封email都是由1@a.com发出来的。所以这个时候你要使用javax.mail.Session.getInstance()方法来创建session对象。

原文地址:http://muder2007.blog.163.com/blog/static/45933070200872025130613/

 

分享到:
评论

相关推荐

    javamail 中文API文档

    JavaMail API主要包含以下几个核心概念:会话(Session)、消息(Message)、地址(Address)、验证程序(Authenticator)、传输(Transport)、存储(Store)和文件夹(Folder)。这些概念构成了JavaMail API的基础...

    JavaMail API 1.4.7 官网下载 最新版

    通过`Session.getInstance()`或`Session.getDefaultInstance()`创建,配置包括邮件服务器的地址、端口、认证信息等。 2. **Message 类**:此类用于表示电子邮件,可以设置主题、正文、发送者、收件人等属性。`...

    javamail API帮助文档

    `Session.getDefaultInstance(Properties)`用于获取默认的Session,而`Session.getInstance(Properties)`则可以创建特定配置的Session。 3. **MimeMessage类**:MimeMessage是Message的一个子类,专门处理MIME格式...

    javamail-1.4.1.rar

    你可以通过`Properties`对象设置这些参数,并使用`Session.getInstance()`或`Session.getDefaultInstance()`获取`Session`实例。 3. **Transport**: 负责将`Message`发送到指定的邮件服务器。使用`Transport.send...

    javaMail 发邮件

    可以设置认证信息和会话属性,例如`Session session = Session.getDefaultInstance(props);`或`Session session = Session.getInstance(props);`。 3. **Message对象**:表示一封邮件,通过MimeMessage类创建。我们...

    james和javamail实现邮件收发(带发送附件)

    然后,使用`Session.getDefaultInstance()`或`Session.getInstance()`初始化邮件会话。 2. **连接邮箱**:通过`Store.connect()`方法连接到指定的邮件服务器和邮箱。 3. **读取邮件**:使用`Folder`对象打开邮箱,...

    javamail邮件系统开发

    你可以通过`Properties`类来设置这些属性,并使用`Session.getDefaultInstance()`或`Session.getInstance()`方法获取`Session`实例。 发送邮件的过程通常涉及以下步骤: 1. 创建`Session`对象,设置邮件服务器属性...

    javaMail发送和接收邮件

    JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中发送和接收电子邮件。它提供了丰富的 API,使得开发者可以方便地与各种邮件服务器进行交互,支持 SMTP、POP3 和 IMAP 协议。本篇文章将深入探讨 JavaMail 的...

    JavaMail开发手册

    - **Session**:JavaMail 的核心对象,代表了一个邮件会话,用于配置邮件服务器的连接参数和认证信息。 - **Message**:表示一封邮件,包含邮件的各个部分,如主题、正文、附件等。 - **MimeMessage**:基于 MIME...

    javaMail使用介绍

    可以通过 `Session.getInstance(Properties)` 或 `Session.getDefaultInstance(Properties)` 获取实例。 2. **javax.mail.Message**: Message 类代表一封邮件,它是抽象类,通常使用其子类 MIMEMessage 来构建包含...

    JavaMail简介

    开发者可以通过`Session.getDefaultInstance()`获取默认的Session实例,或者使用`Session.getInstance()`创建一个特定的Session,这两个方法都需要一个`java.util.Properties`对象,其中包含了连接邮件服务器所需的...

    使用javaMail发送邮件功能

    JavaMail 是一个强大的开源库,用于在Java应用程序中实现电子邮件的发送和接收。它提供了丰富的API,使得开发者能够轻松地处理SMTP、POP3和IMAP等邮件协议。在这个项目中,我们将探讨如何使用JavaMail来实现邮件发送...

    06_传智播客张孝祥java邮件开发_编写一个JavaMail发送邮件的程序.rar

    JavaMail是Java编程语言中用于处理电子邮件的API,它允许开发者通过编程方式发送、接收和管理邮件。在JavaMail中,我们主要会用到 javax.mail 和 javax.mail.internet 这两个包,它们提供了发送邮件所需的各种类和...

    JavaMail

    JavaMail 是一个开源的Java库,它为Java开发者提供了在Java应用程序中发送和接收电子邮件的能力。这个库使得开发者可以通过标准的简单邮件传输协议(SMTP)、邮局协议(POP3)和互联网消息访问协议(IMAP)来处理...

    简单的JavaMail的收发邮件程序

    在JavaMail中,发送邮件的核心类是`javax.mail.Session`和`javax.mail.Transport`。`Session`对象是整个邮件操作的上下文,它负责配置SMTP服务器信息,如主机名、端口号、用户名和密码等。`Transport`对象则负责将...

    javamail,邮件

    通过 Session.getDefaultInstance() 或 Session.getInstance() 创建实例。 6. **Multipart 类**: 用于处理包含多个部分的邮件,如文本和附件。MimeMultipart 和 MixedMultipart 是常用的子类。 7. **Address 类**:...

    JavaMail邮件的接发送

    1. **配置Session**: `Session`对象是JavaMail中的上下文环境,用于管理邮件发送和接收的相关设置。创建`Session`时,通常会通过`Properties`对象传递SMTP服务器的地址和端口,以及登录凭据(用户名和密码)。 ```...

    发送邮件的javaMail包

    在描述中提到的"javamail.jar"是JavaMail的核心库文件,包含了所有必要的类和接口,供开发者在项目中使用。 首先,要使用JavaMail发送邮件,你需要在项目中引入`javamail.jar`。在传统的Java项目中,这通常通过将...

    JavaMail Demo

    `Session.getInstance(props)` 或 `Session.getDefaultInstance(props)` 可以创建一个会话实例。 3. **Message 类**:`Message` 类代表一封邮件。创建 `MimeMessage` 实例(`new MimeMessage(session)`),然后设置...

    javamail收发邮件步骤

    JavaMail 是一个用于在 Java 应用程序中发送和接收电子邮件的开源库。它提供了丰富的 API,使得开发者能够轻松地处理 SMTP、POP3 和 IMAP 协议。本篇文章将详细解析使用 JavaMail 收发邮件的基本步骤。 **1. 发送...

Global site tag (gtag.js) - Google Analytics