今天用javamail做了一个发送邮件的功能.遇到了一系列的问题.
1:在本地(windows环境)测试一切正常,上传到服务器(Linux环境)就出了问题.[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.static变量的问题. 我定义了一个静态类变量public static boolean isRunning = false;来判断状态,刚开始一切正常,但是在一次出了异常之后.就无法执行了,有让我郁闷了好大一会.后来才发现.是static的原因.(static变量属于类变量,在这个类的所有 new出来的对象中只存在一个该变量,每个对象是对同一变量进行操作,static的变量和初始化块仅仅运行一次。不象没有static的变量,每次new的时候,都会重新初始化。)因为static变量只初始化一次,之后使用的值都是之前的状态值.所以我的问题就出在当运行正常时,运行时会把状态改为true,结束后会把状态改为false.但是出现异常时,后面就没把状态改成false.所以下次执行时就无法往下执行了.
分享到:
相关推荐
linux服务器报警—使用javamail
使用JAVAMail代发邮件 资源源于不但搜索,自由源于不但努力
此源码是使用javamail发送邮件,可以实现静默发送邮件,可以发送附件资源等。有相应的使用说明,快捷好用
javamail问题及解决方案源码
Android使用JavaMail开发邮箱最新jar包集合
在JSP中使用JavaMail;在JSP中使用JavaMail
JavaMail官方提供的demo使用样例,里面包含了各种邮件使用场景的示例代码,可直接copy过来使用学习。
javamail使用到jar包,里面包含了javamail的帮助文档,希望对大家有所帮助
JavaMail常见问题
使用jsp实现javaMail邮箱功能开发
使用javamail,commons-mail发送邮件实例。 内含: eclipse工程文件夹 所用到的几个最新jar包,如commons-mail,jaf(activation)等。
javamail的jar包:javamail-1.6; javamail的jar包:javamail-1.6
JavaMail 1.6.0 的官方例子,使用 JavaMail 1.6.0 要求的 JDK 版本必须是 JDK 1.7 以上(建议使用最新版 JDK)。
Android中使用JavaMail发送电子邮件
虽然JavaMail是Sun的API之一,但它目前还没有被加在标准的java开发工具包中(Java Development Kit),这就意味着你在使用前必须另外下载JavaMail文件。除此以外,你还需要有Sun的JavaBeans Activation Framework ...
javamail开发,带图形界面,邮件的发送,接收,带附件,html,邮件解析
javaMail javaMail javaMail javaMail javaMail javaMail javaMail
javaMail的使用 简介了各个类 介绍了怎么搭建邮件环境
javamail.jar,javamail资源包
项目中使用javamail进行邮件发送功能时,需要的javamail的jar包