从永远到永远-java实现邮件发送功能(其实是想用多线程实现,没想好怎么弄。。。)

鉴于面试经常被问到线程知识,而我又不是一个真正有过高并发编程经验的程序员,我打算造一个多线程实现项目功能的demo。很不幸,我失败了。
高并发、多线程、分布式,实不相瞒,最近晚上都能做噩梦。我不是个勤奋的人,不过我是个狠人,睡不着就熬夜加班。

我最初的方向有两个:
1)多线程实现文件上传
2)多线程实现邮件发送。

于是开始网上查询资料,期间也咨询过我一帮BAT的大学同学(30k也不知道怎么拿到手的,真厉害,问什么什么不会。。。)。最终发现,每个人都在说高并发与多线程,却没有人讲的明白。期间最令我头疼的就是培训班的那一堆光告,每次提到多线程要么卖票,要么就秒杀。也能够来理解吧,毕竟在业界混得下去有几个人会去培训班忽悠学生呢。
文件上传我卡在了,不知道怎么合并到项目中,其中又没有有用的代码。最终方向又到了右键发送,面临的问题就更头疼了,我连右键发送都不会。

1、所以首先解决Java实现邮件发送:

在发送方qq邮箱开启此功能,会要求发送短信验证,照做即可:
从永远到永远-java实现邮件发送功能(其实是想用多线程实现,没想好怎么弄。。。)_第1张图片
原生代码实现QQ邮箱发送功能:

public static void main(String[] args){
		String userName="[email protected]";
		String passWord="写自己的";//QQ邮箱开启此功能后,会要求发送一个验证信息,之后会获取的一个验证码
		String subject="主题";
		String content="该邮件用于测试程序邮件功能,无需回复,造成不便敬请原谅!";

		Session session=null;

		try {
			//创建一个资源文件
			Properties prop= new Properties();
			//显示日志
			prop.setProperty("mail.debug","true");
			prop.setProperty("mail.host","smtp.qq.com");//邮箱类别
			prop.setProperty("mail.smtp,auth","true");//设定验证开启
			prop.setProperty("mail.transpot.protocol","smtp");//发送方式
			prop.setProperty("mail.port","465");//设置服务器端口号
			prop.setProperty("mail.smtp.ssl.enable","true");//设置ssl加密开启
			MailSSLSocketFactory factory= new MailSSLSocketFactory();//创建加密证书
			prop.put("mail.smtp.ssl.socketFactory",factory);//
			session = Session.getInstance(prop);//获取具有以上属性的邮件session--》类似连接池
			Transport transport = session.getTransport();//创建获取连接
			transport.connect(userName,passWord);//连接
			Message message= new MimeMessage(session);//创建一个信息
			message.setFrom(new InternetAddress(userName));//设定发送方
			message.setSubject(subject);//设置主题和内容
			message.setContent(content,"text/html;charset=utf-8");
			Address[] addresses= new Address[1];//设置目标地址
			addresses[0]=new InternetAddress("[email protected]");
			//发送邮件
			transport.sendMessage(message,addresses);

		} catch (GeneralSecurityException e) {
			e.printStackTrace();
		} catch (NoSuchProviderException e) {
			e.printStackTrace();
		} catch (MessagingException e) {
			e.printStackTrace();
		}
	}

2.代码进行封装:

待续,感觉学不过来的东西。。。最近的博客写了一堆垃圾了,抓紧补充啊,还要面试上班啊。四点了,熬不住了,睡觉,明天再续。

你可能感兴趣的:(挖坑小能手正在待命-功能模块)