<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>九破素食 &#187; 无聊的java</title>
	<atom:link href="http://jayya.com/tag/%e6%97%a0%e8%81%8a%e7%9a%84java/feed" rel="self" type="application/rss+xml" />
	<link>http://jayya.com</link>
	<description>Just a blog</description>
	<lastBuildDate>Mon, 14 May 2012 12:23:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>无聊的Java（二）</title>
		<link>http://jayya.com/2006/09/01/237</link>
		<comments>http://jayya.com/2006/09/01/237#comments</comments>
		<pubDate>Fri, 01 Sep 2006 06:29:34 +0000</pubDate>
		<dc:creator>Jayya</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[JavaMail]]></category>
		<category><![CDATA[无聊的java]]></category>

		<guid isPermaLink="false">http://www.jayya.com/?p=237</guid>
		<description><![CDATA[解决Gmail安全连接 上次说到了Gmail使用SSL安全连接，无法使用《java network programming》中的例子去连接到到Gmail的收件箱，我们Google到了一些文章，这其中有下面一篇文章：《利用JavaMail收/发Gmail邮件(SSL)》，这篇文章介绍了JMail接收和发送Gmail邮箱邮件的程序，不过很可惜，在我的机子上这个程序很长时间没有响应，于是我按照书上的例子样子，写了一个类似的程序，结果可以运行，代码如下： Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; prop = System.getProperties(); prop.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY); prop.setProperty("mail.pop3.socketFactory.fallback", "false"); prop.setProperty("mail.pop3.port", "995"); prop.setProperty("mail.pop3.socketFactory.port", "995"); session = Session.getDefaultInstance(prop,null); try { store = session.getStore(provider); store.connect(host,usrname,ps); inbox = store.getFolder("INBOX"); inbox.open(Folder.READ_ONLY); msgs = inbox.getMessages(); System.out.println("收件箱的邮件数：" + msgs.length); } catch (Exception e) { // TODO 自动生成 catch 块 e.printStackTrace(); ok,现在可以获得我的各个邮箱的收件箱的信件的数量了，那么下面要实现来信提醒功能，我的想法是设置一个Timertask作为demothread在后台隔一定时间来查看收件箱的数量，通过比较在时间差内的数量，来决定是否有新的邮件来，那么这又涉及到Timermask与demothread的相关内容，假设我们还是很了解这方面的东西，那么我还使用Google来查询相关的内容，呵呵，今天就写到这了，明天接着写。]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.jayya.com/wp-content/uploads/2006/08/WindowsLiveWriter/JavaStepbyStep_12F51/duke_thumb8.gif" width="100" align="left"> <strong>解决Gmail安全连接</strong></p>
<p>上次说到了Gmail使用SSL安全连接，无法使用《java network programming》中的例子去连接到到Gmail的收件箱，我们Google到了一些文章，这其中有下面一篇文章：<a href="http://www.cnblogs.com/ufoer23/archive/2006/04/06/368728.html" target="_blank">《利用JavaMail收/发Gmail邮件(SSL)》</a>，这篇文章介绍了JMail接收和发送Gmail邮箱邮件的程序，不过很可惜，在我的机子上这个程序很长时间没有响应，于是我按照书上的例子样子，写了一个类似的程序，结果可以运行，代码如下：<span id="more-237"></span><br />
<code><br />
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());<br />
	  final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";<br />
	   prop = System.getProperties();<br />
	  prop.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);<br />
	  prop.setProperty("mail.pop3.socketFactory.fallback", "false");<br />
	  prop.setProperty("mail.pop3.port", "995");<br />
	  prop.setProperty("mail.pop3.socketFactory.port", "995");<br />
	   session = Session.getDefaultInstance(prop,null);<br />
	try {<br />
		store = session.getStore(provider);<br />
		store.connect(host,usrname,ps);<br />
		 inbox = store.getFolder("INBOX");<br />
		 inbox.open(Folder.READ_ONLY);<br />
		 msgs = inbox.getMessages();<br />
		 System.out.println("收件箱的邮件数：" + msgs.length);<br />
	} catch (Exception e) {<br />
		// TODO 自动生成 catch 块<br />
		e.printStackTrace();<br />
</code></p>
<p>ok,现在可以获得我的各个邮箱的收件箱的信件的数量了，那么下面要实现来信提醒功能，我的想法是设置一个Timertask作为demothread在后台隔一定时间来查看收件箱的数量，通过比较在时间差内的数量，来决定是否有新的邮件来，那么这又涉及到Timermask与demothread的相关内容，假设我们还是很了解这方面的东西，那么我还使用Google来查询相关的内容，呵呵，今天就写到这了，明天接着写。</p>
]]></content:encoded>
			<wfw:commentRss>http://jayya.com/2006/09/01/237/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>无聊的Java（一）</title>
		<link>http://jayya.com/2006/08/30/232</link>
		<comments>http://jayya.com/2006/08/30/232#comments</comments>
		<pubDate>Wed, 30 Aug 2006 13:04:53 +0000</pubDate>
		<dc:creator>Jayya</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[无聊的java]]></category>

		<guid isPermaLink="false">http://www.jayya.com/?p=232</guid>
		<description><![CDATA[这是我准备的一系列JAVA开发文章的开篇，包括题记，项目背景介绍等信息，感兴趣话可以看看，我会争取每天都写一篇关于这个的文章的，敬请大家关注。 题记 我终于决定要写点东西了，因为现在实在是很无聊。虽然现在对于要写什么还不是很清晰，为什么写也不是很明朗，但我还是决定要写点东西了，而不仅仅是记一些很无聊的琐碎，虽然日志更多应该记自己的琐碎。 写的内容目前看来就是java了，这个学习使用了2年半的东西（更多的应该是学习,不停的甚至有些盲目的看书，各种各样的java相关的），但是写这些东西绝对不是为显示自己的实力（老实说，我也没有什么java实力），只是因为我很无聊，想用java这个工具去做一些自己的东西，是完全符合自己心意和要求。这里写的一些程序或者称他们为项目也好的东西，只是我在这一段无聊的时间内一些无聊的想法，仅此而已。 另一个写这个东西的目的，这完全不是我的初衷，而是现在我想到的：是不是完整的记录我从有一个想法到动手实践，之后再到去完善自己的想法，再去动手实践，最后做出满足我要求和想法的东西的过程。呵呵，也许这时候，你会下意识的想：“下面这哥们是不是要说让我学习借鉴他这个”。恩不是，我这么做只是一种记录，主要是对我自己的，也许会多你有用了，那就更好了。 啰嗦了这么多，你一定有点烦了，也一定有点头晕了，是的，我都有点头晕（我的思路一贯的很不清晰），那么下面我们进入正题： 我的想法 是关于电子邮件的，在用了一段时间的OE和Foxmail之后，感觉都不是很好，他们都有点占用资源了，尤其是OE，启动时候竟然能把我的机子整死，况且每次从装系统，他们都回从我的126和Gmail重新下载几千封以前邮件（我个人比较懒，从来没有整理过我的邮箱），这让我极其的恶心和头疼；还有就是我很少用他们去发信，更多的时候我只是用他们来提醒我新邮件到了。 上面说了这么多，总结起来就一点：我现在需要的仅仅是一个邮件提醒程序，其他功能不想要。恩，这就确定了这个程序主要功能:EmailNotify。我们下面的东西都回围绕这个去实施。 具体实施(8-30) 以后的章节都将会以日期作标记。 Java处理Mail的API就是JavaMail了，当然还有其他api，这里我采用了javamail，去http://java.sun.com/products/javamail/下载了javamail-1.4和jaf-1.0.2（JavaBeans Activation Framework,http://java.sun.com/products/javabeans/glasgow/jaf.html下载），添加进入的你的Classpath，或者简单把mail.jar,activation.jar放到你的jre/lib/ext目录下面，这样环境就搭建起来了。 接着我翻看《java network programming》3rd editon english version 里面最后一章（最近老在图书馆的英文阅览室，前面的日志中记载过）讲述的JAVAMailApi，我现在只需要接受邮件，于是便看了第三节，它上面大致讲了以下一些内容： 接受邮件的步骤： 创建你要建立的连接的属性 创建你要建连接的Authenticator 获得Session通过Session.getDefaultInstance( ) 获得一个Store通过session的getStore( )方法 连接上store 通过store的getFolder()方法获得邮箱的INBOX 打开INBOX文件夹 如果需要可以重复上面的上一步骤来打开INBOX里面的你需要的那个文件夹 通过Message对象数组的形式来获得文件夹里面的Message，使用folder的getMessages( )方法 按照你想得方式，去处理你得到的Messages对象 关闭folder 关闭store 一个展示上面步骤地程序 import javax.mail.*; import javax.mail.internet.*; import java.util.*; import java.io.*; public class POP3Client { public static void main(String[] args) [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.jayya.com/wp-content/uploads/2006/08/WindowsLiveWriter/JavaStepbyStep_12F51/duke_thumb8.gif" width="100" align="left"/>这是我准备的一系列JAVA开发文章的开篇，包括题记，项目背景介绍等信息，感兴趣话可以看看，我会争取每天都写一篇关于这个的文章的，敬请大家关注。</p>
<p><span id="more-232"></span> </p>
<h4>题记</h4>
<p>我终于决定要写点东西了，因为现在实在是很无聊。虽然现在对于要写什么还不是很清晰，为什么写也不是很明朗，但我还是决定要写点东西了，而不仅仅是记一些很无聊的琐碎，虽然日志更多应该记自己的琐碎。</p>
<p>写的内容目前看来就是java了，这个学习使用了2年半的东西（更多的应该是学习,不停的甚至有些盲目的看书，各种各样的java相关的），但是写这些东西绝对不是为显示自己的实力（老实说，我也没有什么java实力），只是因为我很无聊，想用java这个工具去做一些自己的东西，是完全符合自己心意和要求。这里写的一些程序或者称他们为项目也好的东西，只是我在这一段无聊的时间内一些无聊的想法，仅此而已。</p>
<p>另一个写这个东西的目的，这完全不是我的初衷，而是现在我想到的：是不是完整的记录我从有一个想法到动手实践，之后再到去完善自己的想法，再去动手实践，最后做出满足我要求和想法的东西的过程。呵呵，也许这时候，你会下意识的想：“下面这哥们是不是要说让我学习借鉴他这个”。恩不是，我这么做只是一种记录，主要是对我自己的，也许会多你有用了，那就更好了。</p>
<p>啰嗦了这么多，你一定有点烦了，也一定有点头晕了，是的，我都有点头晕（我的思路一贯的很不清晰），那么下面我们进入正题：</p>
<h4><strong>我的想法</strong></h4>
<p>是关于电子邮件的，在用了一段时间的OE和Foxmail之后，感觉都不是很好，他们都有点占用资源了，尤其是OE，启动时候竟然能把我的机子整死，况且每次从装系统，他们都回从我的126和Gmail重新下载几千封以前邮件（我个人比较懒，从来没有整理过我的邮箱），这让我极其的恶心和头疼；还有就是我很少用他们去发信，更多的时候我只是用他们来提醒我新邮件到了。</p>
<p>上面说了这么多，总结起来就一点：我现在需要的仅仅是一个邮件提醒程序，其他功能不想要。恩，这就确定了这个程序主要功能:EmailNotify。我们下面的东西都回围绕这个去实施。</p>
<h4><strong>具体实施</strong>(8-30)</h4>
<p>以后的章节都将会以日期作标记。</p>
<p>Java处理Mail的API就是JavaMail了，当然还有其他api，这里我采用了javamail，去<a href="http://java.sun.com/products/javamail/">http://java.sun.com/products/javamail/</a>下载了javamail-1.4和jaf-1.0.2（JavaBeans Activation Framework,<a href="http://java.sun.com/products/javabeans/glasgow/jaf.html">http://java.sun.com/products/javabeans/glasgow/jaf.html</a>下载），添加进入的你的Classpath，或者简单把mail.jar,activation.jar放到你的jre/lib/ext目录下面，这样环境就搭建起来了。</p>
<p>接着我翻看《java network programming》3rd editon english version 里面最后一章（最近老在图书馆的英文阅览室，前面的日志中记载过）讲述的JAVAMailApi，我现在只需要接受邮件，于是便看了第三节，它上面大致讲了以下一些内容：</p>
<ol>
<p>
<li> <strong>接受邮件的步骤：</strong></p>
<ul>
<li> 创建你要建立的连接的属性</li>
<li> 创建你要建连接的Authenticator</li>
<li> 获得Session通过Session.getDefaultInstance( )</li>
<li> 获得一个Store通过session的getStore( )方法</li>
<li> 连接上store</li>
<li> 通过store的getFolder()方法获得邮箱的INBOX</li>
<li>打开INBOX文件夹</li>
<li> 如果需要可以重复上面的上一步骤来打开INBOX里面的你需要的那个文件夹</li>
<li> 通过Message对象数组的形式来获得文件夹里面的Message，使用folder的getMessages( )方法</li>
<li> 按照你想得方式，去处理你得到的Messages对象</li>
<li> 关闭folder</li>
<li>关闭store</li>
</ul>
</li>
<p><li><strong>一个展示上面步骤地程序</strong><br />
<code>import javax.mail.*;<br />
import javax.mail.internet.*;<br />
import java.util.*;<br />
import java.io.*;<br />
public class POP3Client {<br />
public static void main(String[] args) {<br />
Properties props = new Properties( ); //连接的属性<br />
String host = "utopia.poly.edu"; //邮件主机名，126的邮箱:pop3.126.com<br />
String username = "eharold";//用户名<br />
String password = "mypassword";//密码<br />
String provider = "pop3"; //类型<br />
try {<br />
Session session = Session.getDefaultInstance(props, null);//获得Session<br />
Store store = session.getStore(provider);//获得stroe<br />
store.connect(host, username, password); //连接<br />
Folder inbox = store.getFolder("INBOX"); //获得folder<br />
if (inbox == null) {<br />
System.out.println("No INBOX");<br />
System.exit(1);<br />
}<br />
inbox.open(Folder.READ_ONLY);//打开ifolder<br />
Message[] messages = inbox.getMessages( ); //获得messages<br />
/*下面就是你自己的处理,作者默认使用的writeto，就是将信息一股脑的输出到控制台，不推荐你用的，否则如果地信件像我一样，1k左右，会死的比较残的。*/<br />
for (int i = 0; i < messages.length; i++) {<br />
System.out.println("------------ Message " + (i+1)  + " ------------");<br />
messages[i].writeTo(System.out);<br />
}<br />
 inbox.close(false);//关闭folder<br />
store.close( );   //关闭store<br />
}<br />
catch (Exception ex) {<br />
ex.printStackTrace( );<br />
}<br />
}<br />
}<br />
</code></code></li>
</p>
</ol>
<p>
en,现在把上面的用户名密码服务器之类的信息更改为你自己的，之后呢把wrtieto那一句改为输出信件的数量，编译执行就可以得到你信箱的信件数量了。我用126的邮箱测试了一下，正确。再用gmail测试一下，不过这次却出了问题，一看报错的信息，一头雾水，这时赶紧跑到gmail站去查看相关的参数，发现gmail是使用得ssl连接，这可怎么办了？以前没有使用过相关的api阿，只有用google了，搜索：gmail javamail 很快就找到解决问题的方法。</p>
<p>
怎么解决，下次再写。。<br />
<ins datetime="2006-08-31T09:10:45+00:00"><red>上面是补写昨天的，今天的晚些时候再写</red></ins></p>
]]></content:encoded>
			<wfw:commentRss>http://jayya.com/2006/08/30/232/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

