javamail 关于Access to default session denied

[java.lang.SecurityException: Access to default session denied ],也就是获得默认的session时无法获得.郁闷了N久,在网上搜了下,有朋友遇到同样的问题,但都没人给予解决方案,我在csdn,javaeye发帖也没人回.后来在又看了一朋友的blog,他写的解决办法是,把 mailSession = Session.getDefaultInstance(props,sa);改成mailSession = Session.getInstance(props,sa);就是新创建一个session,我试了下,可以解决问题.但还是找到为什么不能获取默认session的原因.而且担心这样没次都Session.getInstance(props,sa);会不会出问题.

2.发送email内容为html时,出现乱码.同样是在本地测试正常,传到服务器上就出问题.后来经过测试,发现是服务器默认编码的问题,服务器的默认编码UTF-8,我的email内容是本地一html文件,在读取文件内容时没有设置编码,所以读取出来的就已经是乱码了,.后来该成FileInputStream fis = new FileInputStream(filename);BufferedReader in = new BufferedReader(new InputStreamReader(fis,"GBK"));就OK了. InputStreamReader不指定编码方式的话将采用底层操作系统的默认编码方式,所以这里要在构造器重指定编码的方式.

3.原因:Session.getDefaultInstance()是获得一个默认的共享session,而创建一个session可以使用Session.getInstance()。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值