session.getdefaultinstance返回方式
Session.getDefaultInstance()返回一个Session对象后,将这个Session对象安装为默认的Session对象,以后每次调用getDefaultInstance方法都将返回这个默认Session对象.
session.getinstance返回方式
session.getinstance()每次调用都返回一个新的Session对象
区别实例
如果想要同时使用两个帐号发送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对象。