您的位置:首页 > 编程语言 > Java开发

JAVAmail简单实现发送邮件

2017-06-09 09:50 337 查看
Android在邮件客户端的设计中,有两种实现方法:一、调用Android系统自带的邮件服务 ,这种方法简单易用,但是发送邮件的账号必须是gmail账号二、采用javamail功能包进行设计,不必局限于特定邮箱,但是比前一种较麻烦1、使用Android 自带的邮件系统进行设计
Intent intent = new Intent();intent.setAction(Intent.ACTION_SEND);//设置对方邮件地址intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"abc@com.cn","edf@com.cn"});//设置标题内容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[/code] 
这个原因还容易找一些,直接跳到了自己发送邮件的邮箱设置界面,看了半天我是要实现登陆到QQ邮箱,但是我即不是网页版也不是客户端,换而言之,我并不符合QQ邮箱正常登录流程,QQ邮箱考虑到这一点提出了授权,直接把登录密码换成下面的密码就行!
我在使用465端口的时候卡在Conncetion半天,后来换成587就好了,还有一点
// props.setProperty("mail.smtp.timeout", "25"); 不能轻易设置超时
我设置了超时之后,真是是好半天都连不上,不设置这个就立马连上了
最后  折腾了好久 终于OK了!
连接成功后,返回码是250,QQ邮件登录代发程序完成!撒花
最后附上代码:
  

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息