原先使用的代码如下:
Session session = Session.getDefaultInstance(properties, null);
当多次调用发送邮件,而且,第一次使用的是需要全县验证,后面是不需要权限验证
senderInfo.setValidate(true);
这样会导致出错。因为先前创建的session 是需要验证的。使用Session.getDefaultInstance(properties, null); 获取的session是单例的,后面获取的session也都需要权限较验。
后来把代码修改为:
Session session = Session.getInstance(properties, null);
再次试验,发现不报异常了。
原因:Session.getDefaultInstance()是获得一个默认的共享session,而创建一个session可以使用Session.getInstance()。