JAVAmail简单实现发送邮件

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邮箱考虑到这一点提出了授权,直接把登录密码换成下面的密码就行!

JAVAmail简单实现发送邮件_第1张图片
JAVAmail简单实现发送邮件_第2张图片

我在使用465端口的时候卡在Conncetion半天,后来换成587就好了,还有一点

// props.setProperty("mail.smtp.timeout", "25"); 不能轻易设置超时
我设置了超时之后,真是是好半天都连不上,不设置这个就立马连上了


最后  折腾了好久 终于OK了!


JAVAmail简单实现发送邮件_第3张图片
连接成功后,返回码是250,QQ邮件登录代发程序完成!撒花


JAVAmail简单实现发送邮件_第4张图片

JAVAmail简单实现发送邮件_第5张图片JAVAmail简单实现发送邮件_第6张图片JAVAmail简单实现发送邮件_第7张图片


	最后附上代码:
		JAVAmail简单实现发送邮件_第8张图片  


         JAVAmail简单实现发送邮件_第9张图片
		

	

你可能感兴趣的:(Android开发,javamail,邮件,gmail,android,电子邮件)