Android在邮件客户端的设计中,有两种实现方法:
一、调用Android系统自带的邮件服务 ,这种方法简单易用,但是发送邮件的账号必须是gmail账号
二、采用javamail功能包进行设计,不必局限于特定邮箱,但是比前一种较麻烦
1、使用Android 自带的邮件系统进行设计
Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); //设置对方邮件地址 intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]", "[email protected]"}); //设置标题内容 intent.putExtra(Intent.EXTRA_SUBJECT, "TEST"); //启动一个新的Activity,"Sending mail..." 是在启动这个ACTIVITY的等待时间时所显示的文 字 startActivity(Intent.createChooser(intent,"Sending mail......."));//如果没有gmail邮箱,会出现没有应用可执行此操作字样
2、使用javamail设计,须导入3个包,:activation.jar、additionnal、jar,mail、jar,
还需要开启网络权限,这几个包在使用的时候还是需要注意的
1、出现的第一个问题,报出java.lang.NoClassDefFoundError: javax.mai这种错误
原因不明,但是,从外部引用进入这三个包就没有再报过这个错误,而且本身我在studio中
也没能顺利引用additionnal、jar这个包,我感觉Android毕竟只是封装了JAVA的一些东西,但是真正实现,还要找其根本。
2、出现的第二个问题,报出530 Error: A secure connection is requiered(such as ssl). More information at http://service.mail.qq
这个原因还容易找一些,直接跳到了自己发送邮件的邮箱设置界面,看了半天我是要实现登陆到QQ邮箱,但是我即不是网页版也不是客户端,换而言之,我并不符合QQ邮箱正常登录流程,QQ邮箱考虑到这一点提出了授权,直接把登录密码换成下面的密码就行!
我在使用465端口的时候卡在Conncetion半天,后来换成587就好了,还有一点
// props.setProperty("mail.smtp.timeout", "25"); 不能轻易设置超时
我设置了超时之后,真是是好半天都连不上,不设置这个就立马连上了
最后 折腾了好久 终于OK了!
连接成功后,返回码是250,QQ邮件登录代发程序完成!撒花
最后附上代码: