在android中使用标准的javamail类库时,会报NoClassDefFoundError之类的错误,根源主要是android is not java,标准javamail中使用的部分sun.*等类库在android运行环境中是没有的。
网友们提供的解决办法就是使用
https://code.google.com/p/javamail-android这个项目,它替换了标准实现里面依赖的一些类库。当然,你也还可以参考一下
https://github.com/ruiaraujo/javamail_android这个项目。
不过我比较有空,又爱折腾,最后是自己到kenai.com找了javamail 1.5的源码,各种折腾一番之后重新打包一番再使用。
注意啦,使用的过程,如果有multipart messages的问题,还需要自己做些兼容(把它写在static方法里面运行一次就好了):
MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
mc.addMailcap("image/gif;; x-java-content-handler=com.sun.mail.handlers.image_gif");
mc.addMailcap("image/jpeg;; x-java-content-handler=com.sun.mail.handlers.image_jpeg");
mc.addMailcap("image/png;; x-java-content-handler=com.sun.mail.handlers.image_png");
CommandMap.setDefaultCommandMap(mc);
完毕。
发布在:
http://auzll.iteye.com
分享到:
相关推荐
Android中使用JavaMail发送电子邮件
Android使用JavaMail开发邮箱最新jar包集合
此源码是使用javamail发送邮件,可以实现静默发送邮件,可以发送附件资源等。有相应的使用说明,快捷好用
android使用javamail发送邮件jar包,可以直接导入到Android studio使用
在JSP中使用JavaMail;在JSP中使用JavaMail
Android发送邮件使用的JavaMail包。包括additional.jar、mail.jar和activation.jar。经测试,能够在程序中正常使用。
javamail问题及解决方案源码
linux服务器报警—使用javamail
在Android上使用JavaMail发送邮件,可以发送附件。 使用了 mail.jar activation.jar additional.jar
Android用JavaMail发送邮件
使用JAVAMail代发邮件 资源源于不但搜索,自由源于不但努力
经过测试使用过适合android_javamail的3个jar包,绝对可用,使用之后不会报找不到function的问题,谁用谁知道
javaMail代码记录 javaMail代码记录
用于android studio 的javamail jar包,可以直接导入使用.
javamail中文API文档 方法解释详细。
http://stackoverflow.com/questions/2020088/sending-email-in-android-using-javamail-api-without-using-the-default-android-app的源码,已实现可发送邮件。
NULL 博文链接:https://hautxsh.iteye.com/blog/1537259