<?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>澄清的半亩方塘</title>
	<atom:link href="http://daniex.info/feed" rel="self" type="application/rss+xml" />
	<link>http://daniex.info</link>
	<description>接天莲叶无穷碧， 映日荷花别样红。</description>
	<lastBuildDate>Thu, 23 Feb 2012 03:13:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>windows xp 右键菜单、打开文件、ctrl+c 奇慢问题</title>
		<link>http://daniex.info/windows-xp-right-click-menu-open-the-file-ctrl-c-unresponsive-problems.html</link>
		<comments>http://daniex.info/windows-xp-right-click-menu-open-the-file-ctrl-c-unresponsive-problems.html#comments</comments>
		<pubDate>Thu, 23 Feb 2012 03:11:47 +0000</pubDate>
		<dc:creator>澄清</dc:creator>
				<category><![CDATA[便笺]]></category>
		<category><![CDATA[生活点滴]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[问题]]></category>

		<guid isPermaLink="false">http://daniex.info/?p=1139</guid>
		<description><![CDATA[<p>办公电脑出现这样的问题有半个月，一直没去折腾他。今儿网上找了下，发现方法很多，不知那个好。症状最符合的就是如下一篇，照做，立马搞定。</p><p>————————————————————————————————————————</p><p>直接症状：</p><p>直接双击打开一个文件，比如一个 txt/Word 文档，要等超过15秒的时间，如果先打开 Word，然后再把文档拖到 Word 中则正常。</p><p>在某文件上点击右 <span class='read-more'><a href='http://daniex.info/windows-xp-right-click-menu-open-the-file-ctrl-c-unresponsive-problems.html'>    [继续阅读....]</a></span></p><div class="clear-float"></div>
		]]></description>
			<content:encoded><![CDATA[<p>办公电脑出现这样的问题有半个月，一直没去折腾他。今儿网上找了下，发现方法很多，不知那个好。症状最符合的就是如下一篇，照做，立马搞定。</p>
<p>————————————————————————————————————————</p>
<p>直接症状：</p>
<p>直接双击打开一个文件，比如一个 txt/Word 文档，要等超过15秒的时间，如果先打开 Word，然后再把文档拖到 Word 中则正常。<br />
在某文件上点击右键，弹出右键菜单需要超过15秒的时间。<br />
对某个文件进行键盘上的 Ctrl+C, Ctrl+V 操作，超过15秒才有反应。。。</p>
<p>间接症状：</p>
<p>断掉网络，如拔掉网线后，双击打开文件的速度和右键菜单的速度就都正常了。</p>
<p>解决方法：</p>
<p>点击“开始”-&gt;“运行”。</p>
<p>在“打开”后输入“regedit”，打开注册表。</p>
<p>先备份注册表，以防万一。方法是，在注册表编辑器中，选择“文件”-&gt;“导出”，将当前注册表导出到一个安全的位置。</p>
<p>回到注册表顶端，打开“我的电脑”-&gt;“HKEY_CLASSES_ROOT”-&gt;“*”-&gt;“shellex”</p>
<p>将下面的两个子项改个名字，如改成“ContextMenuHandlers-”和“PropertySheetHandlers-”</p>
<p>然后关闭注册表编辑器。</p>
<p>天下太平。<br /><strong>随机文章:</strong>
<ul class="random-posts">
<li><a href="http://daniex.info/sybase-database-log-r.html" rel="bookmark" title="2011/10/09">SYBASE数据库日志详解(转)</a></li>
<li><a href="http://daniex.info/syslog-ng-system-logging.html" rel="bookmark" title="2011/04/28">系统日志工具syslog-ng相关介绍</a></li>
<li><a href="http://daniex.info/on-foot-through-the-danxiashan.html" rel="bookmark" title="2011/11/30">第四届徒步穿越丹霞山活动</a></li>
<li><a href="http://daniex.info/excel-remove-carriage-return-and-line-feed.html" rel="bookmark" title="2011/04/10">excel中删除回车和换行符</a></li>
<li><a href="http://daniex.info/be-your-own-boss-2.html" rel="bookmark" title="2010/07/21">你想成为自己的老板么？——让你不断前进的八个秘诀（下）</a></li>
</ul>
<p><!-- Random Posts took 20.759 ms --></p>
<br><blockquote><div><a title="澄清的半亩方塘" href="http://daniex.info">澄清的半亩方塘</a>-<a rel="bookmark" title="windows xp 右键菜单、打开文件、ctrl+c 奇慢问题" href="http://daniex.info/windows-xp-right-click-menu-open-the-file-ctrl-c-unresponsive-problems.html">《windows xp 右键菜单、打开文件、ctrl+c 奇慢问题》</a><br></div& gt;<div>本文链接地址：<a rel="bookmark" title="windows xp 右键菜单、打开文件、ctrl+c 奇慢问题" href="http://daniex.info/windows-xp-right-click-menu-open-the-file-ctrl-c-unresponsive-problems.html">http://daniex.info/windows-xp-right-click-menu-open-the-file-ctrl-c-unresponsive-problems.html</a></div></blockquote>]]></content:encoded>
			<wfw:commentRss>http://daniex.info/windows-xp-right-click-menu-open-the-file-ctrl-c-unresponsive-problems.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>胡适：我的儿子</title>
		<link>http://daniex.info/hu-shi-my-son.html</link>
		<comments>http://daniex.info/hu-shi-my-son.html#comments</comments>
		<pubDate>Tue, 14 Feb 2012 08:25:23 +0000</pubDate>
		<dc:creator>澄清</dc:creator>
				<category><![CDATA[文化]]></category>
		<category><![CDATA[社会时闻]]></category>
		<category><![CDATA[胡适]]></category>
		<category><![CDATA[书]]></category>
		<category><![CDATA[我的儿子]]></category>
		<category><![CDATA[抄袭]]></category>
		<category><![CDATA[教育]]></category>
		<category><![CDATA[问题]]></category>

		<guid isPermaLink="false">http://daniex.info/?p=1135</guid>
		<description><![CDATA[<p>胡适：我的儿子</p><p>　　我实在不要儿子，</p><p>　　儿子自己来了。</p><p>　　“无后主义”的招牌，</p><p>　　于今挂不起来了！</p><p>　　譬如树上开花，</p><p>　　花落天然结果。</p><p>　　那果便是你。</p><p>　　那树便是我。</p><p>　　树本无心结子，</p><p>　　我也无恩于你。</p><p>　　但是你既来了，</p><p>　　我不能不养你教你，</p><p>　　那是我对人道的义务，</p><p>　　并不是我待你的恩谊。</p><p>　　将来你长大时， <span class='read-more'><a href='http://daniex.info/hu-shi-my-son.html'>    [继续阅读....]</a></span></p><div class="clear-float"></div>
		]]></description>
			<content:encoded><![CDATA[<p>胡适：我的儿子</p>
<p>　　我实在不要儿子，<br />
　　儿子自己来了。<br />
　　“无后主义”的招牌，<br />
　　于今挂不起来了！</p>
<p>　　譬如树上开花，<br />
　　花落天然结果。<br />
　　那果便是你。<br />
　　那树便是我。</p>
<p>　　树本无心结子，<br />
　　我也无恩于你。<br />
　　但是你既来了，<br />
　　我不能不养你教你，</p>
<p>　　那是我对人道的义务，<br />
　　并不是我待你的恩谊。<br />
　　将来你长大时，<br />
　　这是我所期望于你：</p>
<p>　　我要你做一个堂堂的人，<br />
　　不要做我的孝顺儿子。</p>
<p>————————</p>
<p>汪长禄先生致胡适的信：</p>
<p>　　昨天上午我同太虚和尚访问先生，谈起许多佛教历史和宗派的话，耽搁了一点多钟的工夫，几乎超过先生平日见客时间的规则五倍以上，实在抱歉的很。后来我和太虚匆匆出门，各自分途去了。晚边回寓，我在桌子上偶然翻到最近《每周评论》的文艺那栏，上面题目是《我的儿子》四个字，下面署了一个“适”字，大约是先生做的。这种议论我从前在《新潮》、《新青年》各报上面已经领教多次，不过昨日因为见了先生，加上“叔度汪汪”的印像，应该格外注意一番。我就不免有些意见，提起笔来写成一封白话信，送给先生，这求指教指教。</p>
<p>　　大作说，“树本无心结子，我也无恩于你”。这和孔融所说的“父之于子当有何亲”、“子之于母亦复奚为”差不多同一样的口气。我且不去管他。下文说的，“但是你既来了，我不能不养你教你，那是我对人道的义务，并不是待你的恩谊”。这就是佬父母一方面的说法。换一方面说，须知儿子的也可模仿同样口气说道：“但是我既来了，你不能不养我教我，那是你对人道的义务，并不是待我的恩谊”。那么两方面变成了跛形的权利者，实在未免太不平等了。平心而论，旧时代的见解，好端端生在社会一个人，前途何等遥远，责任何等重大，为父母的单希望他做他俩的儿子，固然不对。但是照先生的主张，竟把一般做儿子的抬举起来，看做一个“白吃不回账”的主顾，那又未免太“矫枉过正”罢。</p>
<p>　　现在我且丢却亲子的关系不谈，先设一个譬喻来说。假如有位朋友留我在他家里住上若干年，并且供给我的衣食，后来又帮助一个大愿，立心做个大施主，并不希望我些须报答，难道我自问良心能够就是这么拱拱手同季离开便算了吗？我以为亲子的关系，无论怎样改革，总比朋友较深一层。就是同朋友一样平等看待，果然有个鲍叔再世，把我看做管仲一般，也不能够“不是待我的恩谊”罢。</p>
<p>　　大作结尾说道：“我要你做一个堂堂的人，不要你做我的孝顺儿子。”这话我倒并不十分反对。但是我以为应该加上一个字，可以这么说：“我要你做一个堂堂的人，不单要你做我的孝顺儿了。”为什么要加上这一个字呢？因为儿子孝顺父母，也是做人的一种信条，和那“悌弟”、“信友”、“爱群”等等是同样重要的。旧时代学说把一切善行都归纳在“孝”字里面，诚然流弊百出，但一定要把“孝”字“驱逐出境”，划在做人事业范围以外，好像人做了孝子，便不能够做一个堂堂的人。换一句话，就是人若要做一个堂堂的人，便非打定主意做一个不孝之子不可。总而言之，先生把“孝”字看得与做人的信条立在相反的地位。我以为“孝”字看得与做人的信条立在相反的地位。我以为“孝”字虽然没有“万能”的本领，介总这够得上和那做人的信条凑在一起，何必如此“雷厉风行”硬要把他“驱逐出境”呢？</p>
<p>　　前月我在一个地方谈起北京的新生思潮，便联想到先生个人身上。有一位是先生的贵同乡，当时插嘴说道：“现在一般人都把胡适之看做洪火水猛兽一样，其实适之这个人旧道德并不坏。”说罢，并且引起事实为证。我自然是很相信的。照这位贵同乡的说话推测起来，先生平日对于父母当然不肯做那“孝”字反面的行为，是决无疑义了。我怕的是一般根底浅薄的青年，动辄抄袭名人一两句话，敢于年起幌子，便“肆无忌惮”起来。打个比方，有人昨天看见《每周评论》上先生的大作，也便可以说道：“胡先生教我做一个堂堂的人，万不可凭父母的孝顺儿子。”久而久之，社会上布满了这种议论，那么任凭父母老病冻饿以至于死，都有可以不去管他了。我也知道先生的本意无非看见旧式家庭过于“束缚驰骤”，急急地要替他调换空气，不知不觉言之太过，那也难怪。从前朱晦庵说得好，“教学者如扶醉人”，现在的中国人真算是大多数醉倒了。先生可怜他们，池下告奋勇，使一股大劲，把他从东边扶起一样吗？万一不幸，连性命都要送掉，那又向谁叫冤呢？</p>
<p>　　我很盼望先生有空闲的时候，再把那“我的父母”四个字做个题目，细细的想一番。把做儿子的对于父母应该怎样报答的话（我以为一方面做父母的儿子，同时在他方面仍不妨做社会上一个人），也得咏叹几句，“恰如分际”，“彼此兼顾”，那才免得发生许多流弊。</p>
<p>+++++++++++++++++</p>
<p>胡适答汪先生的信：</p>
<p>　　前天同太虚和尚谈论，我得益不少。别后又承先生给我这封很诚恳的信，感谢之至。</p>
<p>　　“父母于子无恩”的话，从王充、孔融以来，也很久了。从前有人说我曾提倡这话，我实在不能承认。直到今年我自己生了一个儿子，我才想到这个问题上去。我想这个孩子自己并不曾自由主张要生在我家，我们做父母的不曾得他的同意，就糊里糊涂的给了他一条生命。况且我们也并不曾有意送给他这条生命。我们既无意，如何能居功？如何能自以为有恩于他？他既无意求生，我们生了他，我们对他只有抱歉，更不能“市恩”了。我们糊里糊涂的替社会上添了一个人，这个人将来一生的苦乐祸福，这个人将来在社会上的功罪，我们应该负一部分的责任。说得偏激一点，我们生一个儿子，就好比替他种下了祸根，又替社会种下了祸根。他也许养成坏习惯，做一个短命浪子；他也许更堕落下去，做一个军阀派的走狗。所以我们“教他养他”，只是我们自己减轻罪过的法子，只是我们种下祸根之后自己补过弥缝的法子。这可以说是恩典吗？</p>
<p>　　我所说的，是从做父母的一方面设想的，是从我下人对于我自己的儿子设想的，所以我的题目是“我的儿子”。我的意思是要我这个儿子晓得我对他只有抱歉，决不居功，决不市恩。至于我的儿子将来怎样待我，那是他自己的事。我决不期望他报答我的恩，因为我已宣言无恩于他。</p>
<p>　　先生说我把一般做儿子的抬举起来，看做一个“白吃不还帐”的主顾。这是先生误会我的地方。我的意思恰同这个相反。我想把一般做父母的抬高起来，叫秘们不要把自己看做一种“放高利债”的债主。</p>
<p>　　先生又怪我把“孝”字驱逐出境。我要问先生，现在“孝子”两个字究竟还有什么意义？现在的人死了父母都称“孝子”。孝子就是居父母丧的儿子（古书称为“主人”），无论怎样忤逆不孝的人，一穿上麻衣，带上商梁冠，拿着哭丧棒，人家就称他做“孝子”。</p>
<p>　　我的意思以为古人把一切做人的道理包在孝字里，故战阵无勇，莅官不敬，等等都是不孝。这种学说，先生也承认他流弊百出。所以我要我的儿子做一个堂堂的人，不要他做我的孝顺儿子。我的意想以为“一个堂堂的人”决不致于做打爹骂娘的事，决不致于对他的父母毫无感情。</p>
<p>　　但是我不赞成把“儿子孝顺父母”列为一种“信条”。易卜生的《群鬼》里有一段话很可研究（《新潮》第五号页八五一）：</p>
<p>　　（阵代牧师）你忘了没有，一个孩子应该爱敬他的父母？</p>
<p>　　（阿尔文夫人）我们不要讲得这样宽泛。应该说：“欧士华应该爱敬阿尔文先生（欧士华之父）吗？”</p>
<p>　　这是说，“一个孩子应该爱敬他的父母”是耶教一种信条，但是有时未必适用。即如阿尔文一生纵淫，死于花柳毒，还把遗毒传级他的儿子欧士华，后来欧士华毒发而死。请问欧士华应该孝顺阿尔文吗？若照中国古代的伦理观念自然不成问题。但是在今日可不能不成问题了。假如我染着花柳毒，生下儿子又聋又瞎，终身残废，他应该倾家荡产敬我吗？又假如我把我的儿子应得的遗产都拿去赌输了，使他前食不能完全，教育不能得着，他应该爱敬我吗“又假如我卖国主义，做了一国一世的在罪人，他应该爱敬我吗？</p>
<p>　　至于先生说的，恐怕有人扯起幌子，说，“胡先生教我做一个堂堂的人，万不可做父母的孝顺儿子”。这中他自己错了。我的诗是发表我生平第一次做老子的感想，我并不曾教训我家的儿子！</p>
<p>　　总之，我只说了我自己承认对儿子无恩，至于儿子将来对我作何感想，那是他自己的事，人不管了。</p>
<p>　　先生又要我做“我的父母”的诗。我对于这个题目，也曾有诗，载在《每周评论》第一期和《新潮》第二期里。 <br /><strong>随机文章:</strong>
<ul class="random-posts">
<li><a href="http://daniex.info/damage-teleplay.html" rel="bookmark" title="2011/09/27">本来想说《裂痕》的，变成说片头的了。</a></li>
<li><a href="http://daniex.info/terrible-university.html" rel="bookmark" title="2010/06/27">新周刊：可怕的大学</a></li>
<li><a href="http://daniex.info/the-javamail-api.html" rel="bookmark" title="2012/01/27">使用JavaMail API</a></li>
<li><a href="http://daniex.info/currency-war-currency-rise.html" rel="bookmark" title="2011/11/29">《货币战争》《货币崛起》</a></li>
<li><a href="http://daniex.info/c-calling-c-dll-commissioned.html" rel="bookmark" title="2011/06/21">C#调用C++DLL&#8211;委托</a></li>
</ul>
<p><!-- Random Posts took 22.500 ms --></p>
<br><blockquote><div><a title="澄清的半亩方塘" href="http://daniex.info">澄清的半亩方塘</a>-<a rel="bookmark" title="胡适：我的儿子" href="http://daniex.info/hu-shi-my-son.html">《胡适：我的儿子》</a><br></div& gt;<div>本文链接地址：<a rel="bookmark" title="胡适：我的儿子" href="http://daniex.info/hu-shi-my-son.html">http://daniex.info/hu-shi-my-son.html</a></div></blockquote>]]></content:encoded>
			<wfw:commentRss>http://daniex.info/hu-shi-my-son.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我的母亲  胡适</title>
		<link>http://daniex.info/my-mother-hu-shi.html</link>
		<comments>http://daniex.info/my-mother-hu-shi.html#comments</comments>
		<pubDate>Wed, 08 Feb 2012 06:39:41 +0000</pubDate>
		<dc:creator>澄清</dc:creator>
				<category><![CDATA[文化]]></category>
		<category><![CDATA[社会时闻]]></category>
		<category><![CDATA[胡适]]></category>
		<category><![CDATA[书]]></category>
		<category><![CDATA[大学生]]></category>
		<category><![CDATA[我的母亲]]></category>

		<guid isPermaLink="false">http://daniex.info/?p=1130</guid>
		<description><![CDATA[<p>我小时候身体弱，不能跟着野蛮的孩子们一块儿玩。我母亲也不准我和他们乱跑乱跳。小时不曾养成活泼游戏习惯，无论在什么地方，我总是文绉绉地。所以家乡老辈都说我“像个先生样子”，遂叫我做“麇先生”。这个绰号叫出去之后，人都知道三先生的小儿子叫做麇先生了。即有“先生”之名，我不能不装出点“先生”样子，更不能跟着顽童们“野”了。有一天，我在我家八字门口和一班孩子“掷铜钱”，一位老辈走过，见了我，笑道：“麇先生 <span class='read-more'><a href='http://daniex.info/my-mother-hu-shi.html'>    [继续阅读....]</a></span></p><div class="clear-float"></div>
		]]></description>
			<content:encoded><![CDATA[<p>我小时候身体弱，不能跟着野蛮的孩子们一块儿玩。我母亲也不准我和他们乱跑乱跳。小时不曾养成活泼游戏习惯，无论在什么地方，我总是文绉绉地。所以家乡老辈都说我“像个先生样子”，遂叫我做“麇先生”。这个绰号叫出去之后，人都知道三先生的小儿子叫做麇先生了。即有“先生”之名，我不能不装出点“先生”样子，更不能跟着顽童们“野”了。有一天，我在我家八字门口和一班孩子“掷铜钱”，一位老辈走过，见了我，笑道：“麇先生也掷铜钱吗？”我听了羞愧的面红耳热，觉得太失了“先生”身份！</p>
<p>大人们鼓励我装先生样子，我也没有嬉戏的能力和习惯，又因为我确是喜欢看书，故我一生可算是不曾享过儿童游戏的生活。每年秋天，我的庶祖母同我到田里去“监割”（顶好的田，水旱无忧，收成最好，佃户每约田主来监割，打下谷子，两家平分），我总是坐在小树下看小说。十一二岁时，我稍活泼一点，居然和一群同学组织了一个戏剧班，做了一些木刀竹枪，借得了几副假胡须，就在村口田里做戏。我做的往往是诸葛亮，刘备一类的文角儿；只有一次我做史文恭，被花荣一箭从椅子上射倒下去，这算是我最活泼的玩艺儿了。</p>
<p>我在这九年（1895-1904）之中，只学得了读书写字两件事。在文字和思想的方面，不能不算是打了一点底子。但别的方面都没有发展的机会。有一次我们村“当朋”（八都凡五村，称为“五朋”，每年一村轮着做太子会，名为“当朋”）筹备太子会，有人提议要派我加入前村的昆腔队里学习吹笙或吹笛。族里长辈反对，说我年纪太小，不能跟着太子会走遍五朋。于是我便失掉了学习音乐的唯一机会。三十年来，我不曾拿过乐器，也全不懂音乐；究竟我有没有一点学音乐的天资，我至今不知道。至于学图画，更是不可能的事。我常常用竹纸蒙在小说书的石印绘像上，摹画书上的英雄美人。有一天，被先生看见了，挨了一顿大骂，抽屉里的图画都被搜出撕毁了。于是我又失掉了学做画家的机会。</p>
<p>但这九年的生活，除了读书看书之外，究竟给了我一点做人的训练。在这一点上，我的恩师便是我的慈母。</p>
<p>每天天刚亮时，我母亲便把我喊醒，叫我披衣坐起。我从不知道她醒来坐了多久了。她看我清醒了，便对我说昨天我做错了什么事，说错了什么话，要我认错，要我用功读书。有时候她对我说父亲的种种好处，她说：“你总要踏上你老子的脚步。我一生只晓得这一个完全的人，你要学他，不要跌他的股。”（跌股便是丢脸出丑。）她说到伤心处，往往掉下泪来。到天大明时，她才把我的衣服穿好，催我去上早学。学堂门上的锁匙放在先生家里；我先到学堂门口一望，便跑到先生家里去敲门。先生家里有人把锁匙从门缝里递出来，我拿了跑回去，开了门，坐下念生书，十天之中，总有八九天我是第一个去开学堂门的。等到先生来了，我背了生书，才回家吃早饭。</p>
<p>我母亲管束我最严，她是慈母兼任严父。但她从来不在别人面前骂我一句，打我一下，我做错了事，她只对我一望，我看见了她的严厉眼光，便吓住了。犯的事小，她等到第二天早晨我眠醒时才教训我。犯的事大，她等到晚上人静时，关了房门，先责备我，然后行罚，或罚跪，或拧我的肉。无论怎样重罚，总不许我哭出声音来，她教训儿子不是借此出气叫别人听的。</p>
<p>有一个初秋的傍晚，我吃了晚饭，在门口玩，身上只穿着一件单背心。这时候我母亲的妹子玉英姨母在我家住，她怕我冷了，拿了一件小衫出来叫我穿上。我不肯穿，她说：“穿上吧，凉了。”我随口回答：“娘（凉）什么！老子都不老子呀。”我刚说了这句话，一抬头，看见母亲从家里走出，我赶快把小衫穿上。但她已听见这句轻薄的话了。晚上人静后，她罚我跪下，重重的责罚了一顿。她说：“你没了老子，是多么得意的事！好用来说嘴！”她气得坐着发抖，也不许我上床去睡。我跪着哭，用手擦眼泪，不知擦进了什么微菌，后来足足害了一年多的翳病。医来医去，总医不好。我母亲心里又悔又急，听说眼翳可以用舌头舔去，有一夜她把我叫醒，她真用舌头舔我的病眼。这是我的严师，我的慈母。</p>
<p>我母亲二十三岁做了寡妇，又是当家的后母。这种生活的痛苦，我的笨笔写不出一万分之一二。家中财政本不宽裕，全靠二哥在上海经营调度。大哥从小便是败子，吸鸦片烟、赌博，钱到手就光，光了便回家打主意，见了香炉便拿出去卖，捞着锡茶壶便拿出押。我母亲几次邀了本家长辈来，给他定下每月用费的数目。但他总不够用，到处都欠下烟债赌债。每年除夕我家中总有一大群讨债的，每人一盏灯笼，坐在大厅上不肯去。大哥早已避出去了。大厅的两排椅子上满满的都是灯笼和债主。我母亲走进走出，料理年夜饭，谢灶神，压岁钱等事，只当做不曾看见这一群人。到了近半夜，快要“封门”了，我母亲才走后门出去，央一位邻居本家到我家来，每一家债户开发一点钱。做好做歹的，这一群讨债的才一个一个提着灯笼走出去。一会儿，大哥敲门回来了。我母亲从不骂他一句。并且因为是新年，她脸上从不露出一点怒色。这样的过年，我过了六七次。</p>
<p>大嫂是个最无能而又最不懂事的人，二嫂是个能干而气量很窄小的人。他们常常闹意见，只因为我母亲的和气榜样，他们还不曾有公然相骂相打的事。她们闹气时，只是不说话，不答话，把脸放下来，叫人难看；二嫂生气时，脸色变青，更是怕人。她们对我母亲闹气时，也是如此，我起初全不懂得这一套，后来也渐渐懂得看人的脸色了。我渐渐明白，世间最可厌恶的事莫如一张生气的脸；世间最下流的事莫如把生气的脸摆给旁人看，这比打骂还难受。</p>
<p>我母亲的气量大，性子好，又因为做了后母后婆，她更事事留心，事事格外容忍。大哥的女儿比我只小一岁，她的饮食衣服总是和我的一样。我和她有小争执，总是我吃亏，母亲总是责备我，要我事事让她。后来大嫂二嫂都生了儿子了，她们生气时便打骂孩子来出气，一面打，一面用尖刻有刺的话骂给别人听。我母亲只装做不听见。有时候，她实在忍不住了，便悄悄走出门去，或到左邻立大嫂家去坐一会，或走后门到后邻度嫂家去闲谈。她从不和两个嫂子吵一句嘴。</p>
<p>每个嫂子一生气，往往十天半个月不歇，天天走进走出，板着脸，咬着嘴，打骂小孩子出气。我母亲只忍耐着，到实在不可再忍的一天，她也有她的法子。这一天的天明时，她便不起床，轻轻的哭一场。她不骂一个人，只哭她的丈夫，哭她自己苦命，留不住她丈夫来照管她。她先哭时，声音很低，渐渐哭出声来。我醒了起来劝她，她不肯住。这时候，我总听得见前堂（二嫂住前堂东房）或后堂（大嫂住后堂西房）有一扇房门开了，一个嫂子走出房向厨房走去。不多一会，那位嫂子来敲我们的房门了。我开了房门，她走进来，捧着一碗热茶，送到我母亲床前，劝她止哭，请她喝口热茶。我母亲慢慢停住哭声，伸手接了茶碗。那位嫂子站着劝一会，才退出去。没有一句话提到什么人，也没有一个字提到这十天半个月来的气脸，然而各人心里明白，泡茶进来的嫂子总是那十天半个月来闹气的人。奇怪的很，这一哭之后，至少有一两个月的太平清静日子。</p>
<p>我母亲待人最仁慈，最温和，从来没有一句伤人感情的话；但她有时候也很有刚气，不受一点人格上的侮辱。我家五叔是个无正业的浪人，有一天在烟馆里发牢骚，说我母亲家中有事总请某人帮忙，大概总有什么好处给他。这句话传到了我母亲耳朵里，她气得大哭，请了几位本家来，把五叔喊来，她当面质问他，她给了某人什么好处。直到五叔当众认错赔罪，她才罢休。</p>
<p>我在我母亲的教训之下住了九年，受了她的极大极深的影响。我十四岁（其实只有十二零两三个月）便离开她了，在这广漠的人海里独自混了二十多年，没有一个人管束过我。如果我学得了一丝一毫的好脾气，如果我学得了一点点待人接物的和气，如果我能宽恕人，体谅人——我都得感谢我的慈母。 <br /><strong>随机文章:</strong>
<ul class="random-posts">
<li><a href="http://daniex.info/wp-tragic-history-of-moving.html" rel="bookmark" title="2011/02/28">wp搬家血泪史</a></li>
<li><a href="http://daniex.info/google-product-interface-updates.html" rel="bookmark" title="2011/11/03">google产品界面更新</a></li>
<li><a href="http://daniex.info/between-ubuntu-and-windows-remote-desktop-shared-file-access.html" rel="bookmark" title="2011/03/07">Ubuntu与windows间的远程桌面、共享文件访问</a></li>
<li><a href="http://daniex.info/the-top-of-the-wave.html" rel="bookmark" title="2011/11/14">浪潮之巅</a></li>
<li><a href="http://daniex.info/restful-webservice-build.html" rel="bookmark" title="2011/05/30">RESTful WebService 搭建</a></li>
</ul>
<p><!-- Random Posts took 16.801 ms --></p>
<br><blockquote><div><a title="澄清的半亩方塘" href="http://daniex.info">澄清的半亩方塘</a>-<a rel="bookmark" title="我的母亲  胡适" href="http://daniex.info/my-mother-hu-shi.html">《我的母亲  胡适》</a><br></div& gt;<div>本文链接地址：<a rel="bookmark" title="我的母亲  胡适" href="http://daniex.info/my-mother-hu-shi.html">http://daniex.info/my-mother-hu-shi.html</a></div></blockquote>]]></content:encoded>
			<wfw:commentRss>http://daniex.info/my-mother-hu-shi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用JavaMail API</title>
		<link>http://daniex.info/the-javamail-api.html</link>
		<comments>http://daniex.info/the-javamail-api.html#comments</comments>
		<pubDate>Fri, 27 Jan 2012 11:58:33 +0000</pubDate>
		<dc:creator>澄清</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[协议]]></category>
		<category><![CDATA[编程开发]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[javax.mail.internet API 学习]]></category>
		<category><![CDATA[MIME]]></category>
		<category><![CDATA[pop]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[主题]]></category>
		<category><![CDATA[格式]]></category>
		<category><![CDATA[管理]]></category>
		<category><![CDATA[编码]]></category>
		<category><![CDATA[邮件]]></category>

		<guid isPermaLink="false">http://daniex.info/?p=1117</guid>
		<description><![CDATA[<p>使用JavaMail API，接上文<a title="javax.mail.internet API 学习" href="http://daniex.info/javax-mail-internet-api.html" target="_blank"><span style="color: #3366ff;">javax.mail.internet api 学习</span></a>1．发送邮件</p><p>在获得了Session后，建立并填入邮件信息，然后发送它到邮件服务器。这便是使用Java Mail API发送邮件的过程，在发送邮件之前，我们需要设置SMTP服务器：通过设置Properties的mail.smtp.host属性。</p><p>String host = ...;</p><p>Strin <span class='read-more'><a href='http://daniex.info/the-javamail-api.html'>    [继续阅读....]</a></span></p><div class="clear-float"></div>
		]]></description>
			<content:encoded><![CDATA[<p>使用JavaMail API，接上文<a title="javax.mail.internet API 学习" href="http://daniex.info/javax-mail-internet-api.html" target="_blank"><span style="color: #3366ff;">javax.mail.internet api 学习</span><br />
</a>1．发送邮件<br />
在获得了Session后，建立并填入邮件信息，然后发送它到邮件服务器。这便是使用Java Mail API发送邮件的过程，在发送邮件之前，我们需要设置SMTP服务器：通过设置Properties的mail.smtp.host属性。</p>
<blockquote><p>String host = &#8230;;<br />
String from = &#8230;;<br />
String to = &#8230;;<br />
// Get system properties<br />
Properties props = System.getProperties();<br />
// Setup mail server<br />
props.put(&#8220;mail.smtp.host&#8221;, host);<br />
// Get session<br />
Session session = Session.getDefaultInstance(props, null);// Define message<br />
MimeMessage message = new MimeMessage(session);<br />
message.setFrom(new InternetAddress(from));message.addRecipient(Message.RecipientType.TO,   new InternetAddress(to));message.setSubject(&#8220;Hello JavaMail&#8221;);<br />
message.setText(&#8220;Welcome to JavaMail&#8221;);<br />
// Send message<br />
Transport.send(message);</p></blockquote>
<p>由于建立邮件信息和发送邮件的过程中可能会抛出异常，所以我们需要将上面的代码放入到try-catch结构块中。<br />
2．接收邮件<br />
为了在读取邮件，我们获得了session，并且连接到了邮箱的相应store，打开相应的Folder，然后得到我们想要的邮件，当然别忘记了在结束时关闭连接。</p>
<blockquote><p>String host = &#8230;;<br />
String username = &#8230;;<br />
String password = &#8230;;<br />
// Create empty properties<br />
Properties props = new Properties();<br />
// Get session<br />
Session session = Session.getDefaultInstance(props, null);<br />
// Get the store<br />
Store store = session.getStore(&#8220;pop3&#8243;);<br />
store.connect(host, username, password);<br />
// Get folder<br />
Folder folder = store.getFolder(&#8220;INBOX&#8221;);<br />
folder.open(Folder.READ_ONLY);<br />
// Get directory<br />
Message message[] = folder.getMessages();<br />
for (int i=0, n=message.length; i++)&#8230;</p></blockquote>
<p>上面的代码所作的是从邮箱中读取每个邮件，并且显示邮件的发信人地址和主题。从技术角度讲，这里存在着一个异常的可能：当发信人地址为空时，getFrom()[0]将抛出异常。</p>
<p>下 面的代码片断有效的说明了如何读取邮件内容，在显示每个邮件发信人和主题后，将出现用户提示从而得到用户是否读取该邮件的确认，如果输入YES的话，我们 可用Message.writeTo(java.io.OutputStream os)方法将邮件内容输出到控制台上，关于 Message.writeTo()的具体用法请看JavaMail API。</p>
<blockquote><p>BufferedReader reader = new BufferedReader (  new InputStreamReader(System.in));<br />
// Get directory<br />
Message message[] = folder.getMessages();<br />
for (int i=0, n=message.length; i&#8230;</p></blockquote>
<p>3．删除邮件和标志<br />
设置与message相关的Flags是删除邮件的常用方法。这些Flags表示了一些系统定义和用户定义的不同状态。在Flags类的内部类Flag中预定义了一些标志：</p>
<blockquote><p>Flags.Flag.ANSWERED<br />
Flags.Flag.DELETED<br />
Flags.Flag.DRAFT<br />
Flags.Flag.FLAGGED<br />
Flags.Flag.RECENT<br />
Flags.Flag.SEEN<br />
Flags.Flag.USER</p></blockquote>
<p>但 需要在使用时注意的：标志存在并非意味着这个标志被所有的邮件服务器所支持。例如，对于删除邮件的操作，POP协议不支持上面的任何一个。所以要确定哪些 标志是被支持的??通过访问一个已经打开的Folder对象的getPermanetFlags()方法，它将返回当前被支持的Flags类对象。<br />
删除邮件时，我们可以设置邮件的DELETED标志：</p>
<blockquote><p>message.setFlag(Flags.Flag.DELETED, true);</p></blockquote>
<p>但是首先要采用READ_WRITE的方式打开Folder：</p>
<blockquote><p>folder.open(Folder.READ_WRITE);</p></blockquote>
<p>在对邮件进行删除操作后关闭Folder时，需要传递一个true作为对删除邮件的擦除确认。</p>
<blockquote><p>folder.close(true);</p></blockquote>
<p>Folder类中另一种用于删除邮件的方法expunge()也同样可删除邮件，但是它并不为sun提供的POP3实现支持，而其它第三方提供的POP3实现支持或者并不支持这种方法。<br />
另外，介绍一种检查某个标志是否被设置的方法：Message.isSet(Flags.Flag flag)方法，其中参数为被检查的标志。</p>
<p>4．邮件认证<br />
我 们在前面已经学会了如何使用Authenticator类来代替直接使用用户名和密码这两字符串作为 Session.getDefaultInstance()或者Session.getInstance()方法的参数。在前面的小试牛刀后，现在我们将 了解到全面认识一下邮件认证。<br />
我们在此取代了直接使用邮件服务器主机名、用户名、密码这三个字符串作为连接到POP3 Store的方式，使用存储了邮件服务器主机名信息的属性文件，并在获得Session时传入自定义的Authenticator实例：</p>
<blockquote><p>// Setup properties<br />
Properties props = System.getProperties();<br />
props.put(&#8220;mail.pop3.host&#8221;, host);<br />
// Setup authentication, get session<br />
Authenticator auth = new PopupAuthenticator();<br />
Session session = Session.getDefaultInstance(props, auth);<br />
// Get the store<br />
Store store = session.getStore(&#8220;pop3&#8243;);<br />
store.connect();</p></blockquote>
<p>PopupAuthenticator 类继承了抽象类Authenticator，并且通过重载Authenticator类的getPasswordAuthentication()方法返 回PasswordAuthentication类对象。而getPasswordAuthentication()方法的参数param是以逗号分割的 用户名、密码组成的字符串。</p>
<blockquote><p>import javax.mail.*;<br />
import java.util.*;</p>
<p>public class PopupAuthenticator extends Authenticator {<br />
public PasswordAuthentication getPasswordAuthentication(String param) {<br />
String username, password;<br />
StringTokenizer st = new StringTokenizer(param, &#8221;,&#8221;);<br />
username = st.nextToken();<br />
password = st.nextToken();<br />
return new PasswordAuthentication(username, password);<br />
}<br />
}</p></blockquote>
<p>5．回复邮件<br />
回复邮件的方法很简单：使用Message类的reply()方法，通过配 置回复邮件的收件人地址和主题（如果没有提供主题的话，系统将默认将“Re：”作为邮件的主体），这里不需要设置任何的邮件内容，只要复制发信人或者 reply-to到新的收件人。而reply()方法中的boolean参数表示是否将邮件回复给发送者（参数值为false），或是恢复给所有人（参数 值为true）。<br />
补充一下，reply-to地址需要在发信时使用setReplyTo()方法设置。</p>
<blockquote><p>MimeMessage reply = (MimeMessage)message.reply(false);<br />
reply.setFrom(new InternetAddress(&#8220;president@whitehouse.gov&#8221;));<br />
reply.setText(&#8220;Thanks&#8221;);<br />
Transport.send(reply);</p></blockquote>
<p>6．转发邮件<br />
转发邮件的过程不如前面的回复邮件那样简单，它将建立一个转发邮件，这并非一个方法就能做到。<br />
每 个邮件是由多个部分组成，每个部分称为一个邮件体部分，是一个BodyPart类对象，对于MIME类型邮件来讲就是MimeBodyPart类对象。这 些邮件体包含在成为Multipart的容器中对于MIME类型邮件来讲就是MimeMultiPart类对象。在转发邮件时，我们建立一个文字邮件体部 分和一个被转发的文字邮件体部分，然后将这两个邮件体放到一个Multipart中。说明一下，复制一个邮件内容到另一个邮件的方法是仅复制它的 DataHandler（数据处理者）即可。这是由JavaBeans Activation Framework定义的一个类，它提供了对邮件内容的操 作命令的访问、管理了邮件内容操作，是不同的数据源和数据格式之间的一致性接口。</p>
<blockquote><p>// Create the message to forward<br />
Message forward = new MimeMessage(session);<br />
// Fill in header<br />
forward.setSubject(&#8220;Fwd: &#8221; + message.getSubject());<br />
forward.setFrom(new InternetAddress(from));<br />
forward.addRecipient(Message.RecipientType.TO,   new InternetAddress(to));<br />
// Create your new message part<br />
BodyPart messageBodyPart = new MimeBodyPart();<br />
messageBodyPart.setText(  &#8221;Here you go with the original message:\n\n&#8221;);<br />
// Create a multi-part to combine the parts<br />
Multipart multipart = new MimeMultipart();<br />
multipart.addBodyPart(messageBodyPart);<br />
// Create and fill part for the forwarded content<br />
messageBodyPart = new MimeBodyPart();<br />
messageBodyPart.setDataHandler(message.getDataHandler());<br />
// Add part to multi part<br />
multipart.addBodyPart(messageBodyPart);<br />
// Associate multi-part with message<br />
forward.setContent(multipart);<br />
// Send message<br />
Transport.send(forward);</p></blockquote>
<p>7．使用附件<br />
附件作为与邮件相关的资源经常以文本、表格、图片等格式出现，如流行的邮件客户端一样，我们可以用JavaMail API从邮件中获取附件或是发送带有附件的邮件。</p>
<p>A．发送带有附件的邮件<br />
发送带有附件的邮件的过程有些类似转发邮件，我们需要建立一个完整邮件的各个邮件体部分，在第一个部分（即我们的邮件内容文字）后，增加一个具有DataHandler的附件而不是在转发邮件时那样复制第一个部分的DataHandler。</p>
<p>如果我们将文件作为附件发送，那么要建立FileDataSource类型的对象作为附件数据源；如果从URL读取数据作为附件发送，那么将要建立URLDataSource类型的对象作为附件数据源。</p>
<p>然后将这个数据源（FileDataSource或是URLDataSource）对象作为DataHandler类构造方法的参数传入，从而建立一个DataHandler对象作为数据源的DataHandler。</p>
<p>接着将这个DataHandler设置为邮件体部分的DataHandler。这样就完成了邮件体与附件之间的关联工作，下面的工作就是BodyPart的setFileName()方法设置附件名为原文件名。</p>
<p>最后将两个邮件体放入到Multipart中，设置邮件内容为这个容器Multipart，发送邮件。</p>
<blockquote><p>// Define message<br />
Message message = new MimeMessage(session);<br />
message.setFrom(new InternetAddress(from));<br />
message.addRecipient(Message.RecipientType.TO,   new InternetAddress(to));<br />
message.setSubject(&#8220;Hello JavaMail Attachment&#8221;);<br />
// Create the message part<br />
BodyPart messageBodyPart = new MimeBodyPart();<br />
// Fill the message<br />
messageBodyPart.setText(&#8220;Pardon Ideas&#8221;);<br />
Multipart multipart = new MimeMultipart();<br />
multipart.addBodyPart(messageBodyPart);<br />
// Part two is attachment<br />
messageBodyPart = new MimeBodyPart();<br />
DataSource source = new FileDataSource(filename);<br />
messageBodyPart.setDataHandler(new DataHandler(source));<br />
messageBodyPart.setFileName(filename);<br />
multipart.addBodyPart(messageBodyPart);<br />
// Put parts in message<br />
message.setContent(multipart);<br />
// Send the message<br />
Transport.send(message);</p></blockquote>
<p>如果我们使用servlet实现发送带有附件的邮件，则必须上传附件给servlet，这时需要注意提交页面form中对编码类型的设置应为multipart/form-data。</p>
<p>B．读取邮件中的附件<br />
读取邮件中的附件的过程要比发送它的过程复杂一点。因为带有附件的邮件是多部分组成的，我们必须处理每一个部分获得邮件的内容和附件。<br />
但 是如何辨别邮件信息内容和附件呢？Sun在Part类（BodyPart类实现的接口类）中提供了getDisposition()方法让开发者获得邮件 体部分的部署类型，当该部分是附件时，其返回之将是Part.ATTACHMENT。但附件也可以没有部署类型的方式存在或者部署类型为 Part.INLINE，无论部署类型为Part.ATTACHMENT还是Part.INLINE，我们都能把该邮件体部分导出保存。</p>
<blockquote><p>Multipart mp = (Multipart)message.getContent();<br />
for (int i=0, n=multipart.getCount(); i&#8230;</p></blockquote>
<p>下列代码中使用了saveFile方法是自定义的方法，它根据附件的文件名建立一个文件，如果本地磁盘上存在名为附件的文件，那么将在文件名后增加数字表示区别。然后从邮件体中读取数据写入到本地文件中（代码省略）。</p>
<blockquote><p>// from saveFile()<br />
File file = new File(filename);<br />
for (int i=0; file.exists(); i++)<br />
{<br />
file = new File(filename+i);<br />
}</p></blockquote>
<p>以上是邮件体部分被正确设置的简单例子，如果邮件体部分的部署类型为null，那么我们通过获得邮件体部分的MIME类型来判断其类型作相应的处理，代码结构框架如下：</p>
<blockquote><p>if (disposition == null) {<br />
// Check if plain<br />
MimeBodyPart mbp = (MimeBodyPart)part;<br />
if (mbp.isMimeType(&#8220;text/plain&#8221;)) {<br />
// Handle plain<br />
} else {<br />
// Special non-attachment cases here of<br />
// image/gif, text/html, .<br />
..<br />
}<br />
&#8230;<br />
}</p></blockquote>
<p>8．处理HTML邮件<br />
前面的例子中发送的邮件都是以文本为内容的（除了附件），下面将介绍如何接收和发送基于HTML的邮件。<br />
A．发送HTML邮件<br />
假如我们需要发送一个HTML文件作为邮件内容，并使邮件客户端在读取邮件时获取相关的图片或者文字的话，只要设置邮件内容为html代码，并设置内容类型为text/html即可：</p>
<blockquote><p>String htmlText = &#8221;&lt;h1&gt;Hello&lt;/h1&gt;&#8221; ;<br />
message.setContent(htmlText, &#8221;text/html&#8221;));</p></blockquote>
<p>请注意：这里的图片并不是在邮件中内嵌的，而是在URL中定义的。邮件接收者只有在线时才能看到。<br />
在接收邮件时，如果我们使用JavaMail API接收邮件的话是无法实现以HTML方式显示邮件内容的。因为JavaMail API邮件内容视为二进制流。所以要显示HTML内容的邮件，我们必须使用JEditorPane或者第三方HTML展现组件。</p>
<p>以下代码显示了如何使用JEditorPane显示邮件内容：</p>
<blockquote><p>if (message.getContentType().equals(&#8220;text/html&#8221;)) {<br />
String content = (String)message.getContent();<br />
JFrame frame = new JFrame();<br />
JEditorPane text = new JEditorPane(&#8220;text/html&#8221;, content);<br />
text.setEditable(false);<br />
JScrollPane pane = new JScrollPane(text);<br />
frame.getContentPane().add(pane);<br />
frame.setSize(300, 300);<br />
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);<br />
frame.show();<br />
}</p></blockquote>
<p>B．在邮件中包含图片<br />
如 果我们在邮件中使用HTML作为内容，那么最好将HTML中使用的图片作为邮件的一部分，这样无论是否在线都会正确的显示HTML中的图片。处理方法就是 将HTML中用到的图片作为邮件附件并使用特殊的cid URL作为图片的引用，这个cid就是对图片附件的Content-ID头的引用。<br />
处理内嵌图片就像向邮件中添加附件一样，不同之处在于我们必须通过设置图片附件所在的邮件体部分的header中Content-ID为一个随机字符串，并在HTML中img的src标记中设置为该字符串。这样就完成了图片附件与HTML的关联。</p>
<blockquote><p>
String file = &#8230;;<br />
// Create the messageMessage message = new MimeMessage(session);// Fill its headers<br />
message.setSubject(&#8220;Embedded Image&#8221;);<br />
message.setFrom(new InternetAddress(from));<br />
message.addRecipient(Message.RecipientType.TO,   new InternetAddress(to));<br />
// Create your new message part<br />
BodyPart messageBodyPart = new MimeBodyPart();String htmlText = &#8221;"&lt;h1&gt;Hello&lt;/h1&gt;&#8221; ;<br />
messageBodyPart.setContent(htmlText, &#8221;text/html&#8221;);<br />
// Create a related multi-part to combine the parts<br />
MimeMultipart multipart = new MimeMultipart(&#8220;related&#8221;);<br />
multipart.addBodyPart(messageBodyPart);<br />
// Create part for the image<br />
messageBodyPart = new MimeBodyPart();<br />
// Fetch the image and associate to part<br />
DataSource fds = new FileDataSource(file);<br />
messageBodyPart.setDataHandler(new DataHandler(fds));<br />
messageBodyPart.setHeader(&#8220;Content-ID&#8221;,&#8221;");<br />
// Add part to multi-part<br />
multipart.addBodyPart(messageBodyPart);<br />
// Associate multi-part with message<br />
message.setContent(multipart);</p></blockquote>
<p>9．在邮件中搜索短语<br />
JavaMail API提供了过滤器机制，它被用来建立搜索短语。这个短语由javax.mail.search包中的SearchTerm抽象类来定义，在定义后我们便可以使用Folder的Search()方法在Folder中查找邮件：<br />
SearchTerm st = &#8230;;Message[] msgs = folder.search(st);<br />
下面有22个不同的类（继承了SearchTerm类）供我们使用：<br />
AND terms (class AndTerm)<br />
OR terms (class OrTerm)<br />
NOT terms (class NotTerm)<br />
SENT DATE terms (class SentDateTerm)<br />
CONTENT terms (class BodyTerm)<br />
HEADER terms (FromTerm / FromStringTerm, RecipientTerm / RecipientStringTerm, SubjectTerm, etc.)<br />
使用这些类定义的断语集合，我们可以构造一个逻辑表达式，并在Folder中进行搜索。下面是一个实例：在Folder中搜索邮件主题含有“ADV”字符串或者发信人地址为friend@public.com的邮件。</p>
<blockquote><p>SearchTerm st = new OrTerm(new SubjectTerm(&#8220;ADV:&#8221;), new FromStringTerm(&#8220;friend@public.com&#8221;));<br />
Message[] msgs = folder.search(st);
</p></blockquote>
<p>&nbsp;<br /><strong>随机文章:</strong>
<ul class="random-posts">
<li><a href="http://daniex.info/mac-virtual-machine-root-resolution.html" rel="bookmark" title="2011/12/29">win7下使用virtualbox制作mac虚拟机后root用户开启分辨率和输入法问题</a></li>
<li><a href="http://daniex.info/rss-wordpress-page-and-add-copyright-information-articles-random-article.html" rel="bookmark" title="2011/03/16">WordPress在页面及RSS中添加随机文章相关文章版权信息</a></li>
<li><a href="http://daniex.info/http-keep-alive.html" rel="bookmark" title="2011/07/28">http协议头部与keep-alive</a></li>
<li><a href="http://daniex.info/this-done-something-good.html" rel="bookmark" title="2010/09/09">该好好做点事情了</a></li>
<li><a href="http://daniex.info/on-foot-through-the-danxiashan.html" rel="bookmark" title="2011/11/30">第四届徒步穿越丹霞山活动</a></li>
</ul>
<p><!-- Random Posts took 18.281 ms --></p>
<br><blockquote><div><a title="澄清的半亩方塘" href="http://daniex.info">澄清的半亩方塘</a>-<a rel="bookmark" title="使用JavaMail API" href="http://daniex.info/the-javamail-api.html">《使用JavaMail API》</a><br></div& gt;<div>本文链接地址：<a rel="bookmark" title="使用JavaMail API" href="http://daniex.info/the-javamail-api.html">http://daniex.info/the-javamail-api.html</a></div></blockquote>]]></content:encoded>
			<wfw:commentRss>http://daniex.info/the-javamail-api.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>javax.mail.internet API 学习</title>
		<link>http://daniex.info/javax-mail-internet-api.html</link>
		<comments>http://daniex.info/javax-mail-internet-api.html#comments</comments>
		<pubDate>Fri, 20 Jan 2012 14:34:58 +0000</pubDate>
		<dc:creator>澄清</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[协议]]></category>
		<category><![CDATA[编程开发]]></category>
		<category><![CDATA[Http]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[javax.mail.internet API 学习]]></category>
		<category><![CDATA[MIME]]></category>
		<category><![CDATA[pop]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[主题]]></category>
		<category><![CDATA[书]]></category>
		<category><![CDATA[格式]]></category>
		<category><![CDATA[编码]]></category>
		<category><![CDATA[邮件]]></category>

		<guid isPermaLink="false">http://daniex.info/?p=1112</guid>
		<description><![CDATA[<p>前些天编程，用了个这样的数据传输方式，在http POST消息中传MIME数据包。于是找到javax.mail.internet的包用。在Java EE 1.5的库里包含这个包。现在有的MIME包不仅仅这一个，还有很多，更有千秋。比如这个包的Countent-Type 的 boundary字段是自动生成的，还不太方便取出来。有些包是能够自己设置boundary字段。</p><p>下面转载了这个包的基本使用 <span class='read-more'><a href='http://daniex.info/javax-mail-internet-api.html'>    [继续阅读....]</a></span></p><div class="clear-float"></div>
		]]></description>
			<content:encoded><![CDATA[<p>前些天编程，用了个这样的数据传输方式，在http POST消息中传MIME数据包。于是找到javax.mail.internet的包用。在Java EE 1.5的库里包含这个包。现在有的MIME包不仅仅这一个，还有很多，更有千秋。比如这个包的Countent-Type 的 boundary字段是自动生成的，还不太方便取出来。有些包是能够自己设置boundary字段。</p>
<p>下面转载了这个包的基本使用方法，供学习参考。<span style="color: #3366ff;"><a title="MIME详细介绍" href="http://daniex.info/mime-details.html" target="_blank"><span style="color: #3366ff;">MIME学习请参考这里</span></a></span></p>
<p>++++++++++++++++++++++++++++++++++++++++++++</p>
<p>打开JavaMail.jar文件，我们将发现在javax.mail的包下面存在着一些核心类：Session、Message、Address、Authenticator、Transport、Store、Folder。而且在 javax.mail.internet包中还有一些常用的子类。</p>
<p>&nbsp;</p>
<p><strong>A．Session</strong></p>
<p>Session类定义了基本的邮件会话。就像Http会话那样，我们进行收发邮件的工作都是基于这个会话的。Session对象利用了java.util.Properties对象获得了邮件服务器、用户名、密码信息和整个应用程序都要使用到的共享信息。</p>
<p>Session类的构造方法是私有的，所以我们可以使用Session类提供的getDefaultInstance()这个静态工厂方法获得一个默认的Session对象：</p>
<div>
<blockquote>
<div>1 Properties props = new Properties();// fill props with any information<br />
2  Session session = Session.getDefaultInstance(props, null);</div>
</blockquote>
</div>
<p>或者使用getInstance()这个静态工厂方法获得自定义的Session:</p>
<div>
<blockquote>
<div>1 Properties props = new Properties();// fill props with any information<br />
2  Session session = Session.getInstance(props, null);</div>
</blockquote>
</div>
<p>从上面的两个例子中不难发现，getDefaultInstance()和getInstance()方法的第二个参数都是null，这是因为在上面的例子中并没有使用到邮件授权，下文中将对授权进行详细介绍。<br />
从很多的实例看，在对mail server进行访问的过程中使用共享的Session是足够的，即使是工作在多个用户邮箱的模式下也不例外。</p>
<p><strong>B．</strong><strong>Message</strong></p>
<p>当我们建立了Session对象后，便可以构造被 发送的信息体了。在这里SUN提供了Message类型来帮助开发者完成这项工作。由于Message是一个抽象类，大多数情况下，我们使用 javax.mail.internet.MimeMessage这个子类，该类是使用MIME类型、MIME信息头的邮箱信息。信息头只能使用US- ASCII字符，而非ASCII字符将通过编码转换为ASCII的方式使用。</p>
<p>为了建立一个MimeMessage对象，我们必须将Session对象作为MimeMessage构造方法的参数传入：</p>
<div>
<blockquote>
<div>1 MimeMessage message = new MimeMessage(session);</div>
</blockquote>
</div>
<p>注意：对于MimeMessage类来讲存在着多种构造方法，比如使用输入流作为参数的构造方法。</p>
<p>在建立了MimeMessage对象后，我们需要设置它的各个part，对于MimeMessage类来说，这些part就是MimePart接口。最基本的设置信息内容的方法就是通过表示信息内容和米么类型的参数调用setContent()方法：</p>
<div>
<blockquote>
<div>1 message.setContent(&#8220;Hello&#8221;, &#8220;text/plain&#8221;);</div>
</blockquote>
</div>
<p>然而，如果我们所使用的MimeMessage中信息内容是文本的话，我们便可以直接使用setText()方法来方便的设置文本内容：</p>
<div>
<blockquote>
<div>1 message.setText(&#8220;Hello&#8221;);</div>
</blockquote>
</div>
<p>前面所讲的两种方法，对于文本信息，后者更为合适。而对于其它的一些信息类型，比如HTML信息，则要使用前者。<br />
别忘记了，使用setSubject()方法对邮件设置邮件主题：</p>
<div>
<blockquote>
<div>1 message.setSubject(&#8220;First&#8221;);</div>
</blockquote>
</div>
<p><strong>C．Address</strong></p>
<p>到这里，我们已经建立了Session和Message，下面将介绍如何使用邮件地址类：Address。像Message一样，Address类也是一个抽象类，所以我们将使用javax.mail.internet.InternetAddress这个子类。</p>
<p>通过传入代表邮件地址的字符串，我们可以建立一个邮件地址类：</p>
<div>
<blockquote>
<div>1 Address address = new InternetAddress(&#8220;president@whitehouse.gov&#8221;);</div>
</blockquote>
</div>
<p>如果要在邮件地址后面增加名字的话，可以通过传递两个参数：代表邮件地址和名字的字符串来建立一个具有邮件地址和名字的邮件地址类：</p>
<div>
<blockquote>
<div>1 Address address = new InternetAddress(&#8220;president@whitehouse.gov&#8221;, &#8220;George Bush&#8221;);</div>
</blockquote>
</div>
<p>本文在这里所讲的邮件地址类是为了设置邮件信息的发信人和收信人而准备的，在建立了邮件地址类后，我们通过message的setFrom()和setReplyTo()两种方法设置邮件的发信人：</p>
<div>
<blockquote>
<div>1 message.setFrom(address);message.setReplyTo(address);</div>
</blockquote>
</div>
<p>若在邮件中存在多个发信人地址，我们可用addForm()方法增加发信人：</p>
<div>
<blockquote>
<div>1 Address address[] = &#8230;;<br />
2 message.addFrom(address);</div>
</blockquote>
</div>
<p>为了设置收信人，我们使用addRecipient()方法增加收信人，此方法需要使用Message.RecipientType的常量来区分收信人的类型：</p>
<div>
<blockquote>
<div>1 message.addRecipient(type, address)</div>
</blockquote>
</div>
<p>下面是Message.RecipientType的三个常量：</p>
<div>
<blockquote>
<div>1 Message.RecipientType.TO<br />
2 Message.RecipientType.CC<br />
3 Message.RecipientType.BCC</div>
</blockquote>
</div>
<p>因此，如果我们要发送邮件给总统，并发用一个副本给第一夫人的话，下面的方法将被用到：</p>
<div>
<blockquote>
<div>1 Address toAddress = new InternetAddress(&#8220;vice.president@whitehouse.gov&#8221;);<br />
2 Address ccAddress = new InternetAddress(&#8220;first.lady@whitehouse.gov&#8221;);<br />
3 message.addRecipient(Message.RecipientType.TO, toAddress);<br />
4 message.addRecipient(Message.RecipientType.CC, ccAddress);</div>
</blockquote>
</div>
<p>JavaMail API并没有提供检查邮件地址有效性的机制。当然我们可以自己完成这个功能：验证邮件地址的字符是否按照RFC822规定的格式书写或者通过DNS服务器上的MX记录验证等。</p>
<p><strong>D．Authenticator</strong></p>
<p>像java.net类那样，JavaMail API通过使用授权者类 （Authenticator）以用户名、密码的方式访问那些受到保护的资源，在这里“资源”就是指邮件服务器。在javax.mail包中可以找到这个 JavaMail的授权者类（Authenticator）。</p>
<p>在使用Authenticator这个抽象类时，我们必须采用继承该抽象类的方式，并且该继 承类必须具有返回PasswordAuthentication对象（用于存储认证时要用到的用户名、密 码）getPasswordAuthentication()方法。并且要在Session中进行注册，使Session能够了解在认证时该使用哪个类。</p>
<p>下面代码片断中的MyAuthenticator就是一个Authenticator的子类：</p>
<div>
<blockquote>
<div>1 Properties props = new Properties();// fill props with any information<br />
2  Authenticator auth = new MyAuthenticator();<br />
3 Session session = Session.getDefaultInstance(props, auth);</div>
</blockquote>
</div>
<p><strong>E．Transport</strong></p>
<p>在发送信息时，Transport类将被用到。这个类实现了发送信息的协议（通称为SMTP），此类是一个抽象类，我们可以使用这个类的静态方法send()来发送消息：</p>
<div>
<blockquote>
<div>1 Transport.send(message);</div>
</blockquote>
</div>
<p>当然，方法是多样的。我们也可由Session获得相应协议对应的Transport实例。并通过传递用户名、密码、邮件服务器主机名等参数建立与邮件服务器的连接，并使用sendMessage()方法将信息发送，最后关闭连接：</p>
<div>
<blockquote>
<div>1 message.saveChanges(); // implicit with send()<br />
2  Transport transport = session.getTransport(&#8220;smtp&#8221;);<br />
3 transport.connect(host, username, password);<br />
4 transport.sendMessage(message, message.getAllRecipients());<br />
5 transport.close();</div>
</blockquote>
</div>
<p>评论：上面的方法是一个很好的方法，尤其是在我们在同一个邮件服务器上发送多个邮件时。因为 这时我们将在连接邮件服务器后连续发送邮件，然后再关闭掉连接。send()这个基本的方法是在每次调用时进行与邮件服务器的连接的，对于在同一个邮件服 务器上发送多个邮件来讲可谓低效的方式。</p>
<p>注意：如果需要在发送邮件过程中监控mail命令的话，可以在发送前设置debug标志：</p>
<div>
<blockquote>
<div>1 session.setDebug(true)；</div>
</blockquote>
</div>
<p><strong>F．Store和Folder</strong></p>
<p>接 收邮件和发送邮件很类似都要用到Session。但是在获得Session后，我们需要从Session中获取特定类型的Store，然后连接到 Store，这里的Store代表了存储邮件的邮件服务器。在连接Store的过程中，极有可能需要用到用户名、密码或者Authenticator。</p>
<div>
<blockquote>
<div>1 Store store = session.getStore(&#8220;pop3&#8243;);<br />
2 store.connect(host, username, password);</div>
</blockquote>
</div>
<p>在连接到Store后，一个Folder对象即目录对象将通过Store的getFolder()方法被返回，我们可从这个Folder中读取邮件信息：</p>
<div>
<blockquote>
<div>1 Folder folder = store.getFolder(&#8220;INBOX&#8221;);<br />
2 folder.open(Folder.READ_ONLY);<br />
3 Message message[] = folder.getMessages();</div>
</blockquote>
</div>
<p>上面的例子首先从Store中获得INBOX这个Folder（对于POP3协议只有一个名为INBOX的Folder有效），然后以只读（Folder.READ_ONLY）的方式打开Folder，最后调用Folder的 getMessages()方法得到目录中所有Message的数组。</p>
<p>注意：对于POP3协议只 有一个名为INBOX的Folder有效，而对于IMAP协议，我们可以访问多个Folder（想想前面讲的IMAP协议）。而且SUN在设计 Folder的getMessages()方法时采取了很智能的方式：首先接收新邮件列表，然后再需要的时候（比如读取邮件内容）才从邮件服务器读取邮件 内容。</p>
<p>在读取邮件时，我们可以用Message类的getContent()方法接收邮件或是writeTo()方法将邮件保存，getContent()方法只接收邮件内容（不包含邮件头），而writeTo()方法将包括邮件头。</p>
<div>
<blockquote>
<div>1 System.out.println(((MimeMessage)message).getContent());</div>
</blockquote>
</div>
<p>在读取邮件内容后，别忘记了关闭Folder和Store。</p>
<div>
<blockquote>
<div>1 folder.close(aBoolean);<br />
2 store.close();</div>
</blockquote>
</div>
<p>传递给Folder.close()方法的boolean类型参数表示是否在删除操作邮件后更新Folder。</p>
<p>转自：http://tech.ccidnet.com/art/3741/20060531/567247_1.html<br /><strong>随机文章:</strong>
<ul class="random-posts">
<li><a href="http://daniex.info/scalp-itching.html" rel="bookmark" title="2010/08/18">看着就头皮发痒了。。。</a></li>
<li><a href="http://daniex.info/wp_list_categories.html" rel="bookmark" title="2011/10/25">利用wp_list_categories做worldpress文章分类列表</a></li>
<li><a href="http://daniex.info/photo-gallery.html" rel="bookmark" title="2010/08/03">相册、图床制作，WordPress图片站、插件相关</a></li>
<li><a href="http://daniex.info/a-versatile-treeview-for-wpf.html" rel="bookmark" title="2011/09/22">A Versatile TreeView for WPF</a></li>
<li><a href="http://daniex.info/my-mother-hu-shi.html" rel="bookmark" title="2012/02/08">我的母亲  胡适</a></li>
</ul>
<p><!-- Random Posts took 18.598 ms --></p>
<br><blockquote><div><a title="澄清的半亩方塘" href="http://daniex.info">澄清的半亩方塘</a>-<a rel="bookmark" title="javax.mail.internet API 学习" href="http://daniex.info/javax-mail-internet-api.html">《javax.mail.internet API 学习》</a><br></div& gt;<div>本文链接地址：<a rel="bookmark" title="javax.mail.internet API 学习" href="http://daniex.info/javax-mail-internet-api.html">http://daniex.info/javax-mail-internet-api.html</a></div></blockquote>]]></content:encoded>
			<wfw:commentRss>http://daniex.info/javax-mail-internet-api.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MIME详细介绍</title>
		<link>http://daniex.info/mime-details.html</link>
		<comments>http://daniex.info/mime-details.html#comments</comments>
		<pubDate>Thu, 19 Jan 2012 01:11:28 +0000</pubDate>
		<dc:creator>澄清</dc:creator>
				<category><![CDATA[协议]]></category>
		<category><![CDATA[编程开发]]></category>
		<category><![CDATA[Http]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[MIME]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[主题]]></category>
		<category><![CDATA[互联网]]></category>
		<category><![CDATA[格式]]></category>
		<category><![CDATA[编码]]></category>
		<category><![CDATA[视频]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[邮件]]></category>

		<guid isPermaLink="false">http://daniex.info/?p=1101</guid>
		<description><![CDATA[<p>（注：本文转自CSDN，因本人学习，只是做一笔记，以防遗忘。）</p><p><strong>Q</strong> 什么是MIME？什么是MIME邮件？</p><p><strong>A</strong> MIME, 全称为“Multipurpose Internet Mail Extensions”, 比较确切的中文名称为“多用途互联网邮件扩展”。它是当前广泛应用的一种电子邮件技术规范，基本内容定义于RFC 2045-2049。</p><p>自然，MIME邮件就是符合MIME规范的电 <span class='read-more'><a href='http://daniex.info/mime-details.html'>    [继续阅读....]</a></span></p><div class="clear-float"></div>
		]]></description>
			<content:encoded><![CDATA[<div id="cnblogs_post_body">
（注：本文转自CSDN，因本人学习，只是做一笔记，以防遗忘。）</p>
<p><strong>Q</strong> 什么是MIME？什么是MIME邮件？</p>
<p><strong>A</strong> MIME, 全称为“Multipurpose Internet Mail Extensions”, 比较确切的中文名称为“多用途互联网邮件扩展”。它是当前广泛应用的一种电子邮件技术规范，基本内容定义于RFC 2045-2049。</p>
<p>自然，MIME邮件就是符合MIME规范的电子邮件，或者说根据MIME规范编码而成的电子邮件。</p>
<p>在MIME出台之前，使用RFC 822只能发送基本的ASCII码文本信息，邮件内容如果要包括二进制文件、声音和动画等，实现起来非常困难。MIME提供了一种可以在邮件中附加多种不 同编码文件的方法，弥补了原来的信息格式的不足。实际上不仅仅是邮件编码，现在MIME经成为HTTP协议标准的一个部分。</p>
<p>下面举几个MIME邮件的例子，让我们先对MIME编码的格式有个直观的印象。例1是最简单的，只带纯文本正 文，基本上就是RFC 822格式；例2复杂一些，包含纯文本和超文本正文；例3是最复杂的，包含纯文本正文、超文本正文、内嵌资源和文件附件。其中，行号和行号后的空格是为了 分析方便而另外加的，“&#8230; &#8230; &#8230; &#8230;”表示此处省略了大段编码。</p>
<p>例1</p>
<blockquote><p>1 Date: Thu, 18 Apr 2002 09:32:45 +0800<br />
2 From: &lt;bhw98@sina.com&gt;<br />
3 To: &lt;bhwang@jlonline.com&gt;<br />
4 Subject: Test<br />
5 Mime-Version: 1.0<br />
6 Content-Type: text/plain; charset=&#8221;iso-8859-1&#8243;<br />
7<br />
8 This is a simple mail.<br />
9</p></blockquote>
<p>例2</p>
<blockquote><p>1 From: &#8220;bhw98&#8243; &lt;bhw98@sina.com&gt;<br />
2 Reply-To: bhw98@sina.com<br />
3 To: &lt;bluesky7810@163.com&gt;<br />
4 Subject: Re: help<br />
5 X-Mailer: Foxmail 4.2 [cn]<br />
6 Mime-Version: 1.0<br />
7 Content-Type: multipart/alternative;<br />
8 boundary=&#8221;=====002_Dragon307572345230_=====&#8221;<br />
9<br />
10<br />
11 This is a multi-part message in MIME format.<br />
12<br />
13 &#8211;=====002_Dragon307572345230_=====<br />
14 Content-Type: text/plain; charset=&#8221;GB2312&#8243;<br />
15 Content-Transfer-Encoding: quoted-printable<br />
16<br />
17 bluesky7810=A3=AC=C4=FA=BA=C3=A3=A1<br />
18<br />
19 =A1=A1=A1=A1=D4=DA=CF=C2=C6=AA=D7=EE=BA=F3=BF=C9=D2=D4=CF=C2=D4=D8=B0=A1=A3=AC=C4=E3<br />
&#8230; &#8230; &#8230; &#8230;<br />
30 =A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A12003-04-07<br />
31<br />
32 &#8211;=====002_Dragon307572345230_=====<br />
33 Content-Type: text/html; charset=&#8221;GB2312&#8243;<br />
34 Content-Transfer-Encoding: quoted-printable<br />
35<br />
36 &lt;!DOCTYPE HTML PUBLIC &#8220;-//W3C//DTD HTML 4.0 Transitional//EN&#8221;&gt;<br />
37 &lt;HTML&gt;&lt;HEAD&gt;<br />
38 &lt;META content=3D&#8221;text/html; charset=3Dgb2312&#8243;=<br />
39 http-equiv=3DContent-Type&gt;<br />
40 &lt;META content=3D&#8221;MSHTML 5.00.2920.0&#8243; name=3DGENERATOR&gt;<br />
&#8230; &#8230; &#8230; &#8230;<br />
79 &lt;/HTML&gt;<br />
80<br />
81 &#8211;=====002_Dragon307572345230_=====&#8211;<br />
82</p></blockquote>
<p>例3</p>
<blockquote><p>1 Return-Path: &lt;bluesky7810@163.com&gt;<br />
2 Delivered-To: bhw98@sina.com<br />
3 Received: (qmail 75513 invoked by alias); 20 May 2002 02:19:53 -0000<br />
4 Received: from unknown (HELO bluesky) (61.155.118.135)<br />
5 by 202.106.187.143 with SMTP; 20 May 2002 02:19:53 -0000<br />
6 Message-ID: &lt;007f01c3111c$742fec00$0100007f@bluesky&gt;<br />
7 From: &#8220;=?gb2312?B?wLbAtrXEzOwNCg==?=&#8221; &lt;bluesky7810@163.com&gt;<br />
8 To: &#8220;bhw98&#8243; &lt;bhw98@sina.com&gt;<br />
9 Cc: &lt;bhwang@jlonline.com&gt;<br />
10 Subject: =?gb2312?B?ztK1xLbgtK6/2rPM0PI=?=<br />
11 Date: Sat, 20 May 2002 10:03:36 +0800<br />
12 MIME-Version: 1.0<br />
13 Content-Type: multipart/mixed;<br />
14 boundary=&#8221;&#8212;-=_NextPart_000_007A_01C3115F.80DFC5E0&#8243;<br />
15 X-Priority: 3<br />
16 X-MSMail-Priority: Normal<br />
17 X-Mailer: Microsoft Outlook Express 5.00.2919.6700<br />
18 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700<br />
19<br />
20 This is a multi-part message in MIME format.<br />
21<br />
22 &#8212;&#8212;=_NextPart_000_007A_01C3115F.80DFC5E0<br />
23 Content-Type: multipart/related; type=&#8221;multipart/alternative&#8221;;<br />
24 boundary=&#8221;&#8212;-=_NextPart_001_007B_01C3115F.80DFC5E0&#8243;<br />
25<br />
26<br />
27 &#8212;&#8212;=_NextPart_001_007B_01C3115F.80DFC5E0<br />
28 Content-Type: multipart/alternative;<br />
29 boundary=&#8221;&#8212;-=_NextPart_002_007C_01C3115F.80DFC5E0&#8243;<br />
30<br />
31 &#8212;&#8212;=_NextPart_002_007C_01C3115F.80DFC5E0<br />
32 Content-Type: text/plain; charset=&#8221;gb2312&#8243;<br />
33 Content-Transfer-Encoding: quoted-printable<br />
34<br />
35 bhw98, =C4=E3=BA=C3!<br />
36 =D5=E2=CA=C7=CE=D2=D0=B4=B5=C4=B6=E0=B4=AE=BF=DA=CD=A8=D0=C5=B5=C4=B3=CC=D0=<br />
37 =F2, =C7=EB=D6=B8=BD=CC!<br />
38<br />
39<br />
40 &#8212;&#8212;=_NextPart_002_007C_01C3115F.80DFC5E0<br />
41 Content-Type: text/html; charset=&#8221;gb2312&#8243;<br />
42 Content-Transfer-Encoding: quoted-printable<br />
43<br />
44 &lt;!DOCTYPE HTML PUBLIC &#8220;-//W3C//DTD HTML 4.0 Transitional//EN&#8221;&gt;<br />
45 &lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;=C7=E7=C0=CA&lt;/TITLE&gt;<br />
46 &lt;META content=3D&#8221;text/html; charset=3Dgb2312&#8243; http-equiv=3DContent-Type&gt;<br />
47 &lt;STYLE&gt;BODY {<br />
48 COLOR: #0033cc; FONT-FAMILY: =CB=CE=CC=E5, Arial, Helvetica; FONT-SIZE: =<br />
49 9pt; MARGIN-LEFT: 10px; MARGIN-TOP: 25px<br />
50 }<br />
51 &lt;/STYLE&gt;<br />
52 &lt;META content=3D&#8221;MSHTML 5.00.2920.0&#8243; name=3DGENERATOR&gt;&lt;/HEAD&gt;<br />
53 &lt;BODY background=3Dcid:007901c3111c$72b978a0$0100007f@bluesky =<br />
54 bgColor=3D#ffffff&gt;<br />
55 &lt;DIV&gt;<br />
56 &lt;DIV&gt;bhw98, =C4=E3=BA=C3!&lt;/DIV&gt;<br />
57 &lt;P&gt;=D5=E2=CA=C7=CE=D2=D0=B4=B5=C4=B6=E0=B4=AE=BF=DA=CD=A8=D0=C5=B5=C4=B3=CC=<br />
58 =D0=F2, =C7=EB=D6=B8=BD=CC!&lt;/P&gt;&lt;/DIV&gt;<br />
59 &lt;P&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;<br />
60<br />
61 &#8212;&#8212;=_NextPart_002_007C_01C3115F.80DFC5E0&#8211;<br />
62<br />
63 &#8212;&#8212;=_NextPart_001_007B_01C3115F.80DFC5E0<br />
64 Content-Type: image/jpeg; name=&#8221;=?gb2312?B?x+fAyrGzvrAuSlBH?=&#8221;<br />
65 Content-Transfer-Encoding: base64 66 Content-ID: &lt;007901c3111c$72b978a0$0100007f@bluesky&gt;<br />
67<br />
68 /9j/4AAQSkZJRgABAgEASABIAAD/7QVoUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA<br />
69 AQBIAAAAAQABOEJJTQPzAAAAAAAIAAAAAAAAAAA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgAB<br />
70 AAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEA<br />
&#8230; &#8230; &#8230; &#8230;<br />
169 RxVw98Vawq12xQ44q0cKtHFDWKGsKt4EtiuKt4q//9k=<br />
170<br />
171 &#8212;&#8212;=_NextPart_001_007B_01C3115F.80DFC5E0&#8211;<br />
172<br />
173 &#8212;&#8212;=_NextPart_000_007A_01C3115F.80DFC5E0<br />
174 Content-Type: application/msword; name=&#8221;readme.doc&#8221;<br />
175 Content-Transfer-Encoding: base64<br />
176 Content-Disposition: attachment; filename=&#8221;readme.doc&#8221;<br />
177<br />
178 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAJgAAAAAAAAAA<br />
179 EAAAKAAAAAEAAAD+////AAAAACUAAAD/////////////////////////////////////////////<br />
180 ////////////////////////////////////////////////////////////////////////////<br />
&#8230; &#8230; &#8230; &#8230;<br />
1688 AAAAAAAAAAAAAAAAAAA=<br />
1689<br />
1690 &#8212;&#8212;=_NextPart_000_007A_01C3115F.80DFC5E0<br />
1691 Content-Type: application/x-zip-compressed;<br />
1692 name=&#8221;=?gb2312?B?tuC0rr/azajQxbXE1LTC6y56aXA=?=&#8221;<br />
1693 Content-Transfer-Encoding: base64<br />
1694 Content-Disposition: attachment;<br />
1695 filename=&#8221;=?gb2312?B?tuC0rr/azajQxbXE1LTC6y56aXA=?=&#8221;<br />
1696<br />
1697 UEsDBBQAAAAIAFKAoi7qOMOvLw0AAABWAAAUAAAAtuC0rr/azajQxbXE1LTC6y5kb2PtXHtwVNUZ<br />
1698 /+4+kk3IQoAkBkRYQkSgbrKb7IYNEMwmm6ckG0jCI0boZneTbJJ9sNlAEsdOtFqd8Z846tQ6PhB1<br />
1699 hrZTJoK0Vhgf1aGt4rMy6D8tdugfTjuOpcBIR9j+vvsIy4YkRNTRen87v/ud53cee+6557vn7L73<br />
&#8230; &#8230; &#8230; &#8230;<br />
3125 zajQxbXE1LTC6y5kb2NQSwUGAAAAAAEAAQBCAAAAYQ0AAA==<br />
3126<br />
3127 &#8212;&#8212;=_NextPart_000_007A_01C3115F.80DFC5E0&#8211;<br />
3128</p></blockquote>
<p><strong>Q</strong> 在开始研究MIME邮件的时候，如何得到这样的源码？</p>
<p><strong>A</strong> 一些功能比较完善的邮件客户端软件，如微软的Outlook Express，国产的Foxmail等，都提供了查看和保存邮件源码(原始信息)的功能。在Foxmail中，选择邮件列表右键菜单的“原始信息”进行 查看，主菜单的“文件-导出”进行保存。在Outlook Express中，对应的操作分别是“属性”和“另存为”。所保存的.eml文件，可以调用这些程序打开。</p>
<p><strong>Q</strong> 请介绍一下MIME邮件的组成？</p>
<p><strong>A</strong> 总体来说，MIME消息由消息头和消息体两大部分组成。现在我们关注的是MIME邮件，因此在以下的讨论中姑且称“消息”为“邮件”。在上面的例子中，例 1的1-6行，例2的1—8行，例3的1-18行，是邮件头；例1的8—9行，例2的10—82行，例3的20—3128行，是邮件体。邮件头与邮件体之 间以空行进行分隔，如例1的第7行，例2的第9行，例3的第19行。邮件头中不允许出现空行。有一些邮件不能被邮件客户端软件识别，显示的是原始码，就是 因为首行是空行。</p>
<p>邮件头包含了发件人、收件人、主题、时间、MIME版本、邮件内容的类型等重要信息。每条信息称为一个域，由 域名后加“: ”和信息内容构成，可以是一行，较长的也可以占用多行。域的首行必须“顶头”写，即左边不能有空白字符（空格和制表符）；续行则必须以空白字符打头，且第 一个空白字符不是信息本身固有的，解码时要过滤掉。如例2的7-8行，例3的4-5行，13-14行，分别属于一个域。</p>
<p>邮件体包含邮件的内容，它的类型由邮件头的“Content-Type”域指出。常见的简单类型有text/plain(纯文本)和text/html(超文本)。</p>
<p>例2和例3中出现的multipart类型，是MIME邮件的精髓。邮件体被分为多个段，每个段又包含段头和 段体两部分，这两部分之间也以空行分隔。常见的multipart类型有三种：multipart/mixed, multipart/related和multipart/alternative。从它们的名称，不难推知这些类型各自的含义和用处。它们之间的层次关 系可归纳为下图所示：</p>
<pre>+------------------------- multipart/mixed ----------------------------+
|                                                                      |
|  +----------------- multipart/related ------------------+            |
|  |                                                      |            |
|  |  +----- multipart/alternative ------+  +----------+  |  +------+  |
|  |  |                                  |  | 内嵌资源 |  |  | 附件 |  |
|  |  |  +------------+  +------------+  |  +----------+  |  +------+  |
|  |  |  | 纯文本正文 |  | 超文本正文 |  |                |            |
|  |  |  +------------+  +------------+  |  +----------+  |  +------+  |
|  |  |                                  |  | 内嵌资源 |  |  | 附件 |  |
|  |  +----------------------------------+  +----------+  |  +------+  |
|  |                                                      |            |
|  +------------------------------------------------------+            |
|                                                                      |
+----------------------------------------------------------------------+</pre>
<p>可以看出，如果在邮件中要添加附件，必须定义multipart/mixed段；如果存在内嵌资源，至少要定义 multipart/related段；如果纯文本与超文本共存，至少要定义multipart/alternative段。什么是“至少”？举个例子 说，如果只有纯文本与超文本正文，那么在邮件头中将类型扩大化，定义为multipart/related，甚至multipart/mixed，都是允 许的。</p>
<p>multipart诸类型的共同特征是，在段头指定“boundary”参数字符串，段体内的每个子段以此串 定界。所有的子段都以“&#8211;”+boundary行开始，父段则以“&#8211;”+boundary+“&#8211;”行结束。段与段之间也以空行分隔。在邮件体是 multipart类型的情况下，邮件体的开始部分(第一个“&#8211;”+boundary行之前)可以有一些附加的文本行，相当于注释，解码时应忽略。段间 也可以有一些附加的文本行，不会显示出来，如果有兴趣，不妨验证一下。</p>
<p>结合boundary定界和multipart层次关系图，我们分析一下例2和例3的邮件体层次与段嵌套关系。</p>
<p>在例2中，10-12行是附加文本行，13-82行是multipart/alternative型的段，包含两个子段：13-30行是纯文本正文，32-79行是超文本正文。</p>
<p>在例3中，20-21行是附加文本行，22-3127行是multipart/mixed型的段，包含3个子 段：22-171行是multipart/related段，173-1688行与1690-3125行是两个附件。multipart/related 段又包含两个子段：27-61行是multipart/alternative段，63-169行是一个内嵌资源(图片)。multipart /alternative段又包含两个子段：31-48行是纯文本正文，40-59行是超文本正文。</p>
<p>例1只有纯文本正文，实际上属于multipart层次关系图中的一个特殊情况。如果非要避简就繁，写成下面的形式，也是完全符合MIME精神的。</p>
<blockquote><p>Date: Thu, 18 Apr 2002 09:32:45 +0800<br />
From: &lt;bhw98@sina.com&gt;<br />
To: &lt;bhwang@jlonline.com&gt;<br />
Subject: Test<br />
Mime-Version: 1.0<br />
Content-Type: multipart/alternative; boundary=&#8221;{[(^_^)]}&#8221; &#8211;{[(^_^)]}<br />
Content-Type: text/plain; charset=&#8221;iso-8859-1&#8243;<br />
Content-Transfer-Encoding: 7bit This is a simple mail. &#8211;{[(^_^)]}&#8211;</p></blockquote>
<p><strong>Q</strong> 在邮件头和段头中，有哪一些常见的域？</p>
<p><strong>A</strong> 在邮件头中，有很多从RFC 822沿用的域名，MIME也增加了一些。常见的标准域名和含义如下</p>
<table align="center">
<tbody>
<tr>
<td>域名</td>
<td>含义</td>
<td>添加者</td>
</tr>
<tr>
<td>Received</td>
<td>传输路径</td>
<td>各级邮件服务器</td>
</tr>
<tr>
<td>Return-Path</td>
<td>回复地址</td>
<td>目标邮件服务器</td>
</tr>
<tr>
<td>Delivered-To</td>
<td>发送地址</td>
<td>目标邮件服务器</td>
</tr>
<tr>
<td>Reply-To</td>
<td>回复地址</td>
<td>邮件的创建者</td>
</tr>
<tr>
<td>From</td>
<td>发件人地址</td>
<td>邮件的创建者</td>
</tr>
<tr>
<td>To</td>
<td>收件人地址</td>
<td>邮件的创建者</td>
</tr>
<tr>
<td>Cc</td>
<td>抄送地址</td>
<td>邮件的创建者</td>
</tr>
<tr>
<td>Bcc</td>
<td>暗送地址</td>
<td>邮件的创建者</td>
</tr>
<tr>
<td>Date</td>
<td>日期和时间</td>
<td>邮件的创建者</td>
</tr>
<tr>
<td>Subject</td>
<td>主题</td>
<td>邮件的创建者</td>
</tr>
<tr>
<td>Message-ID</td>
<td>消息ID</td>
<td>邮件的创建者</td>
</tr>
<tr>
<td>MIME-Version</td>
<td>MIME版本</td>
<td>邮件的创建者</td>
</tr>
<tr>
<td>Content-Type</td>
<td>内容的类型</td>
<td>邮件的创建者</td>
</tr>
<tr>
<td>Content-Transfer-Encoding</td>
<td>内容的传输编码方式</td>
<td>邮件的创建者</td>
</tr>
</tbody>
</table>
<p>非标准的、自定义域名都以X-开头，例如X-Mailer, X-MSMail-Priority等，通常在接收和发送邮件的是同一程序时才能理解它们的意义。</p>
<p>在段头中，大致有如下一些域</p>
<table align="center">
<tbody>
<tr>
<td>域名</td>
<td>含义</td>
</tr>
<tr>
<td>Content-Type</td>
<td>段体的类型</td>
</tr>
<tr>
<td>Content-Transfer-Encoding</td>
<td>段体的传输编码方式</td>
</tr>
<tr>
<td>Content-Disposition</td>
<td>段体的安排方式</td>
</tr>
<tr>
<td>Content-ID</td>
<td>段体的ID</td>
</tr>
<tr>
<td>Content-Location</td>
<td>段体的位置(路径)</td>
</tr>
<tr>
<td>Content-Base</td>
<td>段体的基位置</td>
</tr>
</tbody>
</table>
<p>有 的域除了值之外，还带有参数。值与参数、参数与参数之间以“;”分隔。参数名与参数值之间以“=”分隔。如例3的28-29行，Content-Type 域的值为“multipart/alternative”，此外有一个参数boundary，值 为&#8221;&#8212;-=_NextPart_002_007C_01C3115F.80DFC5E0&#8243;。又如例3的第176行，Content- Disposition域的值为“attachment”，此外有一个参数filename，值为“readme.doc”。</p>
<p><strong>Q</strong> Content-Type以及它们的参数有哪些形式？</p>
<p><strong>A</strong> Content-Type都是“主类型/子类型”的形式。主类型有text, image, audio, video, application, multipart, message等，分别表示文本、图片、音频、视频、应用、分段、消息等。每个主类型都可能有多个子类型，如text类型就包含plain, html, xml, css等子类型。以X-开头的主类型和子类型，同样表示自定义的类型，未向IANA正式注册，但大多已经约定成俗了。如application/x- zip-compressed是ZIP文件类型。在Windows中，注册表的“HKEY_CLASSES_ROOT\MIME\Database \Content Type”内列举了除multipart之外大部分已知的Content-Type。</p>
<p>关于参数的形式，RFC里有很多补充规定，有的允许带几个参数，较为常见的有</p>
<table align="center">
<tbody>
<tr>
<td>主类型</td>
<td>参数名</td>
<td>含义</td>
</tr>
<tr>
<td>text</td>
<td>charset</td>
<td>字符集</td>
</tr>
<tr>
<td>image</td>
<td>name</td>
<td>名称</td>
</tr>
<tr>
<td>application</td>
<td>name</td>
<td>名称</td>
</tr>
<tr>
<td>multipart</td>
<td>boundary</td>
<td>边界</td>
</tr>
</tbody>
</table>
<p>其中字符集也能在Windows注册表的“HKEY_CLASSES_ROOT\MIME\Database\Charset”内见到。</p>
<p><strong>Q</strong> Content-Transfer-Encoding有哪些？有什么特点？</p>
<p><strong>A</strong> Content-Transfer-Encoding共有Base64, Quoted-printable, 7bit, 8bit, Binary等几种。其中7bit是缺省的编码方式。电子邮件源码最初设计为全部是可打印的ASCII码的形式。非ASCII码的文本或数据要编码成要求 的格式，如上面的三个例子。Base64, Quoted-Printable是在非英语国家使用最广使的编码方式。Binary方式只具有象征意义，而没有任何实用价值。</p>
<p>Base64将输入的字符串或一段数据编码成只含有 {&#8216;A&#8217;-'Z&#8217;, &#8216;a&#8217;-'z&#8217;, &#8217;0&#8242;-&#8217;9&#8242;, &#8216;+&#8217;, &#8216;/&#8217;}这64个字符的串，&#8217;='用于填充。其编码的方法是，将输入数据流每次取6 bit，用此6 bit的值(0-63)作为索引去查表，输出相应字符。这样，每3个字节将编码为4个字符(3×8 → 4×6)；不满4个字符的以&#8217;='填充。有的场合，以“=?charset?B?xxxxxxxx?=”表示xxxxxxxx是Base64编码，且原文 的字符集是charset。如例3第7行&#8221;=?gb2312?B?wLbAtrXEzOwNCg==?=&#8221;是由简体中文“蓝蓝的天”编码而成的。在段体内 则直接编码，适当时机换行，MIME建议每行最多76个字符。如例3的1697-3125行，是一个ZIP文件的Base64编码。</p>
<p>Quoted-printable根据输入的字符串或字节 范围进行编码，若是不需编码的字符，直接输出；若需要编码，则先输出&#8217;='，后面跟着以2个字符表示的十六进制字节值。有的场合，以 “=?charset?Q?xxxxxxxx?=”表示xxxxxxxx是Quoted-printable编码，且原文的字符集是charset。在段 体内则直接编码，适当时机换行，换行前额外输出一个&#8217;='。如例3的44-59行，是HTML文本的Quoted-printable编码。其中第45行 “=C7=E7=C0=CA”原文是“晴朗”，因为“晴”的GB2312码是C7E7，“朗”的GB2312码是C0CA。第48、53、57行末尾只有 孤零零的&#8217;='，表示这是由编码造成的软回车，而非原文固有的。</p>
<p>近年来，国内多数邮件服务器已经支持8bit方式，因此只在国内传输的邮件，特别是在邮件头中，可直接使用8bit编码，对汉字不做处理。如果邮件要出国，还是老老实实地按Base64或Quoted-printable编码才行。</p>
<p><strong>Q</strong> 什么是内嵌资源？它有哪些形式？</p>
<p><strong>A</strong> 内嵌资源也是MIME的一个发光点，它能使邮件内容变得生动活泼、丰富多彩。可在邮件的multipart/related框架内定义一些与正文关联的图 片、动画、声音甚至CSS样式和脚本的段。通常在HTML正文内，使用超级链接与内嵌资源相联系。如在例3中，HTML正文53-54行，解码后为</p>
<blockquote><p>&lt;BODY background=cid:007901c3111c$72b978a0$0100007f@bluesky bgColor=#ffffff&gt;</p></blockquote>
<p>它指出用一个Content-ID为007901c3111c$72b978a0$0100007f@bluesky的图片作为背景(cid:xxxxxxxx也是一种超级链接)。而64-169行恰好就是这样一个内嵌资源。</p>
<p>除了用Content-ID进行联系外，还有另外一种常用形式：用普通超级连接和Content-Location。例如：</p>
<p>在HTML正文中，</p>
<blockquote><p>&#8230; &#8230; &#8230; &#8230; &lt;<br />
IMG SRC=&#8221;http://www.dangdang.com/images/all/anti_joyo_dm_book.gif&#8221;&gt;<br />
&#8230; &#8230; &#8230; &#8230; &lt;<br />
IMG SRC=&#8221;http://www.dangdang.com/dd2001/getimage_small.asp?id=486341&#8243;&gt;<br />
&#8230; &#8230; &#8230; &#8230;</p></blockquote>
<p>对应的内嵌资源为</p>
<blockquote><p>Content-Type: image/gif; name=&#8221;anti_joyo_dm_book.gif&#8221;<br />
Content-Transfer-Encoding: base64<br />
Content-Location: http://www.dangdang.com/images/all/anti_joyo_dm_book.gif<br />
&#8230; &#8230; &#8230; &#8230;<br />
Content-Type: application/octet-stream; name=&#8221;getimage_small.asp?id=486341&#8243;<br />
Content-Transfer-Encoding: base64<br />
Content-Location: http://www.dangdang.com/dd2001/getimage_small.asp?id=486341<br />
&#8230; &#8230; &#8230; &#8230;</p></blockquote>
<p>另外，</p>
<blockquote><p>Content-Location: http://www.dangdang.com/images/all/anti_joyo_dm_book.gif</p></blockquote>
<p>与</p>
<blockquote><p>Content-Location: anti_joyo_dm_book.gif Content-Base: http://www.dangdang.com/images/all/</p></blockquote>
<p>是等效的。</p>
<p><strong>Q</strong> 邮件病毒如何利用附件和内嵌资源传播？</p>
<p><strong>A</strong> 有的邮件附件可能带有病毒，容易理解。附件毕竟是文件，也好预防，不轻易打开就是了。但内嵌资源是在浏览邮件内容时就要访问的，若其中藏有病毒或恶意代码，你在不知不觉中就中招了。如前两年曾经在全球范围内流行的Nimda病毒，功能性源码如下：</p>
<blockquote><p>MIME-Version: 1.0<br />
Content-Type: multipart/related; type=&#8221;multipart/alternative&#8221;; boundary=&#8221;====_ABC1234567890DEF_====&#8221;</p>
<p>&#8211;====_ABC1234567890DEF_====<br />
Content-Type: multipart/alternative; boundary=&#8221;====_ABC0987654321DEF_====&#8221;</p>
<p>&#8211;====_ABC0987654321DEF_====<br />
Content-Type: text/html; charset=&#8221;iso-8859-1&#8243;<br />
Content-Transfer-Encoding: 7bit &lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY bgColor=#ffffff&gt; &lt;iframe src=cid:EA4DMGBP9p height=0 width=0&gt; &lt;/iframe&gt;&lt;/BODY&gt;&lt;/HTML&gt;</p>
<p>&#8211;====_ABC0987654321DEF_====&#8211;</p>
<p>&#8211;====_ABC1234567890DEF_====<br />
Content-Type: audio/x-wav; name=&#8221;readme.exe&#8221;<br />
Content-Transfer-Encoding: base64 Content-ID: &lt;EA4DMGBP9p&gt; TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAA2AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v ZGUuDQ0KJAAAAAAAAAA11CFvcbVPPHG1TzxxtU88E6pcPHW1TzyZqkU8dbVPPJmqSzxytU88cbVO<br />
&#8230; &#8230; &#8230; &#8230; &#8230; &#8230; &#8230; &#8230;<br />
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</p>
<p>&#8211;====_ABC1234567890DEF_====</p></blockquote>
<p>它 将一个可执行文件作为资源嵌入了框架型页面，却声明这段可执行代码是波形声音类型。由于当时微软的IE(版本5.0及以下)存在重大安全漏洞，没有检查 Content-Type与name的扩展名是否匹配，于是就被轻易骗过了，致使点选或打开邮件时自动运行了这个“readme.exe”，机器就感染上 病毒。带毒的机器利用地址簿向别人发送带毒的邮件，一传十，十传百，Nimda蠕虫大行其道。</p>
<p>纵观历史，病毒刚出来时是厉害，但没有任何一种能够持续肆虐下去。Nimda如此，SARS亦当如此。曰：“多难兴邦，众志成城”，又曰：“非典终将倒下，城市精神永存”，相信我们定能很快战胜“非典”!</p>
<p>病毒库升级是跟在新病毒屁股后进行的，不要过分依赖杀毒软件。一个良好的习惯是关闭邮件预览功能，或者设定预览纯文本部分，先查看邮件源码，确信排除病毒嫌疑后再打开。对陌生人发来的带超文本正文的邮件，尤其要当心。永远不要在邮件客户端软件内直接打开附件。</p>
<p><strong>Q</strong> 一些垃圾邮件采取隐藏发件人的方式，如何追查它们来自哪里？</p>
<p><strong>A</strong> 从上面的邮件头域名表中可以看出，邮件的创建者可以掌握大部分的域的内容，但Received等域由各级服务器自动添加，发件人是鞭长莫及。垃圾邮件一般 采用了群发软件发送，邮件头的From域(发件人地址)可以任意伪造，甚至写成收件人地址(收到了自己并没有发过的垃圾邮件，气愤吧？)。查看 Received域(传输路径)链可以找到真正的出处。每个服务器添加的Received语句都在邮件首，故最下面一个Received就包含了发件人所 用的SMTP或HTTP服务器，及最初的网关外部IP地址。</p>
<p>Receive语句的基本格式是：from A by B。A为发送方，B为接收方。例如：</p>
<blockquote><p>Received: (qmail 45304 invoked from network); 4 May 2003 17:05:47 -0000 Received: from unknown (HELO bjapp9.163.net) (202.108.255.197) by 202.106.182.244 with SMTP; 4 May 2003 17:05:47 -0000 Received: from localhost (localhost [127.0.0.1]) by bjapp9.163.net (Postfix) with SMTP id E1C761D84C631 for &lt;bhw98@sina.com&gt;; Mon, 5 May 2003 01:07:26 +0800 (CST) Received: from fanyingxxxx@tom.com (unknown [211.99.162.194]) by bjapp9.163.net (Coremail) with SMTP id OgEAAM1ItT7MNaLC.1 for &lt;bhw98@sina.com&gt;; Mon, 05 May 2003 01:07:26 +0800 (CST)</p></blockquote>
<p>从 上面的例子中不难看出，该邮件的传输路径是：211.99.162.194 → bjapp9.163.net (Coremail 202.108.255.197?) → bjapp9.163.net (Postfix, 202.108.255.197?) → 202.106.182.244。恰好出现了发件人邮箱fanyingxxxx@tom.com，但多数情况不一定能列出来。</p>
<p>此例的localhost [127.0.0.1]，意味着bjapp9.163.net上安装了邮件服务代理性质的软件。</p>
</div>
<p><strong>随机文章:</strong>
<ul class="random-posts">
<li><a href="http://daniex.info/purchasing-management.html" rel="bookmark" title="2010/07/08">企业管理的采购管理及采购流程技巧</a></li>
<li><a href="http://daniex.info/wordpresss-rss-feed.html" rel="bookmark" title="2011/09/23">WordPress 的 RSS feed</a></li>
<li><a href="http://daniex.info/the-top-of-the-wave.html" rel="bookmark" title="2011/11/14">浪潮之巅</a></li>
<li><a href="http://daniex.info/ip-finally-over-a-hundred-days.html" rel="bookmark" title="2011/11/24">博客日ip终于过百。写个心得。</a></li>
<li><a href="http://daniex.info/wordpress-seo-permalink.html" rel="bookmark" title="2010/08/23">WordPress seo&#8211;永久链接permalink搜索引擎优化</a></li>
</ul>
<p><!-- Random Posts took 20.258 ms --></p>
<br><blockquote><div><a title="澄清的半亩方塘" href="http://daniex.info">澄清的半亩方塘</a>-<a rel="bookmark" title="MIME详细介绍" href="http://daniex.info/mime-details.html">《MIME详细介绍》</a><br></div& gt;<div>本文链接地址：<a rel="bookmark" title="MIME详细介绍" href="http://daniex.info/mime-details.html">http://daniex.info/mime-details.html</a></div></blockquote>]]></content:encoded>
			<wfw:commentRss>http://daniex.info/mime-details.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>kindle 4 体验及亚马逊买书推送kindle问题</title>
		<link>http://daniex.info/kindle-4-experience.html</link>
		<comments>http://daniex.info/kindle-4-experience.html#comments</comments>
		<pubDate>Wed, 11 Jan 2012 01:15:51 +0000</pubDate>
		<dc:creator>澄清</dc:creator>
				<category><![CDATA[书籍]]></category>
		<category><![CDATA[便笺]]></category>
		<category><![CDATA[生活点滴]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[书]]></category>
		<category><![CDATA[亚马逊]]></category>
		<category><![CDATA[手机]]></category>
		<category><![CDATA[电子书]]></category>
		<category><![CDATA[解决方案]]></category>
		<category><![CDATA[问题]]></category>

		<guid isPermaLink="false">http://daniex.info/?p=1088</guid>
		<description><![CDATA[<p>2012年1月1日到手的kindle 4，也是新年新气象，2012多看书的好兆头。<span style="color: #3366ff;"><a title="2011看的书电影电视还有玩的" href="http://daniex.info/2011-look-book-film-and-television-as-well-play.html" target="_blank"><span style="color: #3366ff;">2011记录</span></a></span>里只记下屈指可数的几本看过的书，这叫人情何以堪。</p><p>还是先说问题:</p><p><h2 style="background-color: #e3e3e3;">Kindle无法购买Amazon书籍问题</h2></p><p>入手kindle总是先折腾一遍功能。看完用户指导，自己翻腾着按几遍按钮，基本功能就用的比较熟了。但是每次按shop in kindle store 总是显示 no item found. <span class='read-more'><a href='http://daniex.info/kindle-4-experience.html'>    [继续阅读....]</a></span></p><div class="clear-float"></div>
		]]></description>
			<content:encoded><![CDATA[<p>2012年1月1日到手的kindle 4，也是新年新气象，2012多看书的好兆头。<span style="color: #3366ff;"><a title="2011看的书电影电视还有玩的" href="http://daniex.info/2011-look-book-film-and-television-as-well-play.html" target="_blank"><span style="color: #3366ff;">2011记录</span></a></span>里只记下屈指可数的几本看过的书，这叫人情何以堪。</p>
<p>还是先说问题:</p>
<h2 style="background-color: #e3e3e3;">Kindle无法购买Amazon书籍问题</h2>
<p>入手kindle总是先折腾一遍功能。看完用户指导，自己翻腾着按几遍按钮，基本功能就用的比较熟了。但是每次按shop in kindle store 总是显示 no item found.。不管是找book、magazine还是其他，通通没有内容。检查wifi又是正常连接的。这到底是为什么呢？</p>
<p>然后再上Amazon官网，用注册时的账户登录，发现在网上也无法购买书籍，更不要说买书后推送到kindle上了！</p>
<p>怎么办？于是四处找解决方案，各中论坛百度知道之类的网站找。没找到明确的方案，但是，看到说亚马逊买书不支持中国大陆！于是就猜能不能假装在国外。而且也确实看到一些教程在注册的时候填入的不是本国地址。</p>
<p>接着，解决办法就要出来了。我试着改变帐号信息，提交一个美国的地址，kindle 和 amazon网站的账户就能买书了！成功买了本免费的ebook推送到kindle上！其实账号信息在一开始注册amazon账号的时候就会填写，如果那时没填或者填写了国内的地址，那就会导致没法买书。</p>
<h3 style="background-color: #e3e3e3;">解决办法具体步骤</h3>
<p>登陆amazon.com，点击右上角的your account。没登陆的会跳转到登陆页面，输入邮箱密码，成功跳转。新页面中找到setting 项，点击manage address book. 如下图：</p>
<p><img class="aligncenter" title="manageaddressbook" src="http://farm8.staticflickr.com/7173/6673122467_565dbf782d_z.jpg" alt="" width="640" height="167" /></p>
<p>跳转出如下页，点击edit。</p>
<p><img class="aligncenter" title="edit" src="http://farm8.staticflickr.com/7024/6673122649_a13065ee14_z.jpg" alt="" width="640" height="453" /></p>
<p>在这个页面输入地址。找个美国的地址输入就可以了，比如某某公司地址。。。大概正确就行，点击save后amazon会很人性化的给你提示说哪里写的不合适，让你选择是否使用amazon提示修正的地址。</p>
<p><img class="aligncenter" title="chooseedit" src="http://farm8.staticflickr.com/7156/6673122529_0231f72421_z.jpg" alt="" width="640" height="453" /></p>
<p>统一保存，然后大功告成。就可以买书了！！！</p>
<p><img class="aligncenter" title="choosebook" src="http://farm8.staticflickr.com/7155/6673153647_fba0ce1afb_z.jpg" alt="" width="640" height="342" /></p>
<p>购买，然后your account -&gt; manage your kindle -&gt; books</p>
<p>右方action点击后有菜单，选择推送到kindle。</p>
<p><img class="aligncenter" title="sendtokindle" src="http://farm8.staticflickr.com/7147/6673153733_73423dba60_z.jpg" alt="" width="640" height="380" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2 style="background-color: #e3e3e3;">Kindle 4体验感受</h2>
<p>纯粹一看书的工具，用来看书足够了，也只能用来看书。要想玩其他请买kindle fire 或者ipad。</p>
<p>贴膜确实会影响阅读效果，反光挺讨厌的。</p>
<p>经历过一次死机，白屏毫无反应。于是长按关机键重启搞定。</p>
<p>邮箱推送书籍，不用改free.kindle.com的邮箱，直接使用默认的邮箱就行了。</p>
<p>关了灯就不能看kindle有点麻烦，习惯了窝床上熄灯用手机看书一时改不过来。</p>
<p>看中了超长待机和点纸书买的，挺好，还督促我多看书！</p>
<p>&nbsp;<br /><strong>随机文章:</strong>
<ul class="random-posts">
<li><a href="http://daniex.info/damage-teleplay.html" rel="bookmark" title="2011/09/27">本来想说《裂痕》的，变成说片头的了。</a></li>
<li><a href="http://daniex.info/this-done-something-good.html" rel="bookmark" title="2010/09/09">该好好做点事情了</a></li>
<li><a href="http://daniex.info/b2c-sorting.html" rel="bookmark" title="2010/07/21">B2C 商业模式分类</a></li>
<li><a href="http://daniex.info/trip-of-philippines.html" rel="bookmark" title="2011/09/17">菲律宾流水账</a></li>
<li><a href="http://daniex.info/wp-tragic-history-of-moving.html" rel="bookmark" title="2011/02/28">wp搬家血泪史</a></li>
</ul>
<p><!-- Random Posts took 24.578 ms --></p>
<br><blockquote><div><a title="澄清的半亩方塘" href="http://daniex.info">澄清的半亩方塘</a>-<a rel="bookmark" title="kindle 4 体验及亚马逊买书推送kindle问题" href="http://daniex.info/kindle-4-experience.html">《kindle 4 体验及亚马逊买书推送kindle问题》</a><br></div& gt;<div>本文链接地址：<a rel="bookmark" title="kindle 4 体验及亚马逊买书推送kindle问题" href="http://daniex.info/kindle-4-experience.html">http://daniex.info/kindle-4-experience.html</a></div></blockquote>]]></content:encoded>
			<wfw:commentRss>http://daniex.info/kindle-4-experience.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>2011看的书电影电视还有玩的</title>
		<link>http://daniex.info/2011-look-book-film-and-television-as-well-play.html</link>
		<comments>http://daniex.info/2011-look-book-film-and-television-as-well-play.html#comments</comments>
		<pubDate>Wed, 04 Jan 2012 11:57:18 +0000</pubDate>
		<dc:creator>澄清</dc:creator>
				<category><![CDATA[小人物]]></category>
		<category><![CDATA[生活点滴]]></category>
		<category><![CDATA[书]]></category>
		<category><![CDATA[广州]]></category>
		<category><![CDATA[徒步]]></category>
		<category><![CDATA[文化]]></category>
		<category><![CDATA[旅行]]></category>
		<category><![CDATA[演讲]]></category>
		<category><![CDATA[电影]]></category>
		<category><![CDATA[经济]]></category>
		<category><![CDATA[美剧]]></category>
		<category><![CDATA[菲律宾]]></category>
		<category><![CDATA[裂痕]]></category>
		<category><![CDATA[香港]]></category>

		<guid isPermaLink="false">http://daniex.info/?p=1082</guid>
		<description><![CDATA[<p>2011</p><p>电影</p><p>doomsday(末日侵袭)</p><p>非诚勿扰2</p><p>让子弹飞</p><p>大笑江湖</p><p>赵氏孤儿</p><p>创·战纪</p><p>将爱情进行到底</p><p>发条橙</p><p>let me in (American)</p><p>welcome to rileys</p><p>the kids are all right</p><p>致命伴侣</p><p>预产期 Due Date</p><p>国王的演讲 The King's Speech</p><p>黑天鹅 <span class='read-more'><a href='http://daniex.info/2011-look-book-film-and-television-as-well-play.html'>    [继续阅读....]</a></span></p><div class="clear-float"></div>
		]]></description>
			<content:encoded><![CDATA[<p>2011</p>
<p>电影</p>
<p>doomsday(末日侵袭)<br />
非诚勿扰2<br />
让子弹飞<br />
大笑江湖<br />
赵氏孤儿<br />
创·战纪<br />
将爱情进行到底<br />
发条橙<br />
let me in (American)<br />
welcome to rileys<br />
the kids are all right<br />
致命伴侣<br />
预产期 Due Date<br />
国王的演讲 The King&#8217;s Speech<br />
黑天鹅 Black swan<br />
急速复仇<br />
城中大盗 the town<br />
爱情与灵药 love&amp;other drugs<br />
狼人 the wolfman 20110314<br />
开心鬼上身 车太贤 20110316<br />
女巫的季节 20110317<br />
哈利波特之死亡圣器（上）20110416<br />
黄色20110416<br />
爱，不爱 201104<br />
神奇侠侣 201104<br />
不求回报Cold Spring Picture 201104<br />
婚前试爱 201104<br />
单身男女<br />
新倩女幽魂<br />
倩女幽魂123<br />
速度与激情123<br />
rango 兰戈 20110528<br />
我的黑色迷你裙 20110530<br />
速度与激情45<br />
X战警 第一战<br />
X战警 123<br />
生化危机3 20110724<br />
白夜行20110726<br />
我是传奇<br />
时间旅行者的妻子<br />
大侦探福尔摩斯<br />
求婚大作战sp<br />
源代码<br />
财神客栈<br />
窃听风云2<br />
狂野目标 20111021<br />
<span style="color: #0000ff;"><a title="失恋33天" href="http://daniex.info/love-is-not-blind.html"><span style="color: #0000ff;"> 失恋33天20111108</span></a></span><br />
猩球崛起20111117<br />
钢的琴20111120<br />
我们所知道的生活20111204<br />
魔法奇幻秀20111213<br />
<span style="color: #0000ff;"><a title="金陵十三钗" href="http://daniex.info/the-flowers-of-war.html"><span style="color: #0000ff;"> 金陵十三钗20111220</span></a></span><br />
幸福终点站20111224<br />
美剧英剧：<br />
行尸走肉第一季<br />
权利的游戏第一季<br />
妖女迷行第一季<br />
妖女迷行第二季<br />
吸血鬼日记第二季<br />
吸血鬼日记第三季<br />
生活大爆炸第四季<br />
生活大爆炸第五季<br />
绯闻女孩第四季<br />
绯闻女孩第五季<br />
<span style="color: #0000ff;"><a title="本来想说《裂痕》的，变成说片头的了。" href="http://daniex.info/damage-teleplay.html"><span style="color: #0000ff;"> 裂痕第一季<br />
裂痕第二季<br />
裂痕第三季<br />
裂痕第四季</span></a></span><br />
六尺之下第一季<br />
六尺之下第二季<br />
妙贼警探第一季<br />
妙贼警探第二季<br />
妙贼警探第三季<br />
尼基塔第一季<br />
尼基塔第二季</p>
<p>日剧：<br />
白夜行<br />
求婚大作战<br />
野猪大改造<br />
海贼王前200集</p>
<p>韩剧：<br />
秘密花园<br />
城市猎人</p>
<p>港剧：<br />
笑傲江湖（吕颂贤）应该是这个版本的第三遍了。<br />
2011</p>
<p>书</p>
<p>巨流河 齐邦媛 201104<br />
娱乐至死 尼尔・波兹曼 201104<br />
九型人格 201105<br />
经济学史300年 201106<br />
<span style="color: #0000ff;"><a title="《货币战争》《货币崛起》" href="http://daniex.info/currency-war-currency-rise.html"><span style="color: #0000ff;"> 货币战争1 201109<br />
货币战争2 201110</span></a></span><br />
欧洲 一堂丰富的人文课 201110<br />
<span style="color: #0000ff;"><a title="浪潮之巅" href="http://daniex.info/the-top-of-the-wave.html"><span style="color: #0000ff;"> 浪潮之巅201111</span></a></span><br />
<span style="color: #0000ff;"> <a title="《货币战争》《货币崛起》" href="http://daniex.info/currency-war-currency-rise.html"><span style="color: #0000ff;"> 货币崛起201111<br />
货币战争3 201111</span></a></span><br />
冰与火之歌 权利的游戏201112<br />
乔布斯传201112<br />
2011</p>
<p>1.31～2.11 春节（张家港）<br />
2.19 兔年梧桐山踏青<br />
3.20 磨房百公里<br />
4.4 东部华侨城大峡谷<br />
4.9 七娘山<br />
4.30～5.1 广州<br />
5.6～9 张家港<br />
5.14 测试部素质拓展 玫瑰海岸<br />
6.4～8 昆明丽江<br />
7.2 梧桐山-二线关-谭仙庙-圆山公园后山-木瓜小屋-三州田-盐田徒步<br />
7.11～17 北京<br />
8.6 大康溪谷溯溪<br />
8.12～13 露营（香港海下湾海岸公园潜浮）<br />
8.27 东西冲穿越<br />
<span style="color: #0000ff;"><a title="关于广州" href="http://daniex.info/about-guangzhou.html"><span style="color: #0000ff;"> 9.5～8广州</span></a></span><br />
<span style="color: #0000ff;"> <a title="菲律宾流水账" href="http://daniex.info/trip-of-philippines.html"><span style="color: #0000ff;"> 9.9～13 菲律宾</span></a></span><br />
10.23 光明农场<br />
10.29 西贡村-红花岭-抛狗岭-半云天徒步<br />
<span style="color: #0000ff;"><a title="山友八周年——走进马峦山50公里徒步" href="http://daniex.info/shanyou8zhounian-50km.html"><span style="color: #0000ff;"> 11.6 山友八周年-走进马峦山50公里徒步</span></a></span><br />
<span style="color: #0000ff;"> 1<a title="第四届徒步穿越丹霞山活动" href="http://daniex.info/on-foot-through-the-danxiashan.html"><span style="color: #0000ff;">1.25～27 第四届丹霞山徒步（韶关）</span></a></span><br />
<span style="color: #0000ff;"> <a title="2011山友山野百里石牛肚-猫耳石-公婆石-十二灶顶" href="http://daniex.info/2011shanyou-shanyebaili.html"><span style="color: #0000ff;"> 12.9～11 山友山野百里（信宜）蓝坑村-石牛肚-猫耳石-公婆石-十二灶顶-大营坳</span></a></span><br />
12.16～17 东部华侨城茶溪谷<br />
<span style="color: #0000ff;"><a title="穿越三水线，我们毕业了！" href="http://daniex.info/through-the-sanshui-line-we-graduated.html"><span style="color: #0000ff;"> 12.25 三水线穿越</span></a></span><br /><strong>随机文章:</strong>
<ul class="random-posts">
<li><a href="http://daniex.info/this-done-something-good.html" rel="bookmark" title="2010/09/09">该好好做点事情了</a></li>
<li><a href="http://daniex.info/love-is-not-blind.html" rel="bookmark" title="2011/11/09">失恋33天</a></li>
<li><a href="http://daniex.info/through-the-sanshui-line-we-graduated.html" rel="bookmark" title="2011/12/27">穿越三水线，我们毕业了！</a></li>
<li><a href="http://daniex.info/soapui-test-webservice.html" rel="bookmark" title="2011/06/17">SOAPUI测试WebService</a></li>
<li><a href="http://daniex.info/windows-install-openssl.html" rel="bookmark" title="2011/03/28">Windows下安装OpenSSL</a></li>
</ul>
<p><!-- Random Posts took 13.683 ms --></p>
<br><blockquote><div><a title="澄清的半亩方塘" href="http://daniex.info">澄清的半亩方塘</a>-<a rel="bookmark" title="2011看的书电影电视还有玩的" href="http://daniex.info/2011-look-book-film-and-television-as-well-play.html">《2011看的书电影电视还有玩的》</a><br></div& gt;<div>本文链接地址：<a rel="bookmark" title="2011看的书电影电视还有玩的" href="http://daniex.info/2011-look-book-film-and-television-as-well-play.html">http://daniex.info/2011-look-book-film-and-television-as-well-play.html</a></div></blockquote>]]></content:encoded>
			<wfw:commentRss>http://daniex.info/2011-look-book-film-and-television-as-well-play.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>20120102HK</title>
		<link>http://daniex.info/20120102hk.html</link>
		<comments>http://daniex.info/20120102hk.html#comments</comments>
		<pubDate>Tue, 03 Jan 2012 10:02:08 +0000</pubDate>
		<dc:creator>澄清</dc:creator>
				<category><![CDATA[游记]]></category>
		<category><![CDATA[生活点滴]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[中环]]></category>
		<category><![CDATA[书]]></category>
		<category><![CDATA[尖沙咀]]></category>
		<category><![CDATA[广州]]></category>
		<category><![CDATA[手机]]></category>
		<category><![CDATA[星光大道]]></category>
		<category><![CDATA[暴走]]></category>
		<category><![CDATA[深圳]]></category>
		<category><![CDATA[红磡]]></category>
		<category><![CDATA[维多利亚港]]></category>
		<category><![CDATA[轩尼诗]]></category>
		<category><![CDATA[铜锣湾]]></category>
		<category><![CDATA[香港]]></category>

		<guid isPermaLink="false">http://daniex.info/?p=1077</guid>
		<description><![CDATA[<p>这是我第二次到香港，第一次只去湾下海海岸公园露营潜浮，还有就西贡某条街呆了一个小时。所以，可以说我没去过hk。。。</p><p>为了说起来我确实像是来过香港而不是招摇撞骗的，不得已，我得再来一次认认路。于是，这次hk之旅就像第一次去广州一样是暴走。记录以下路线图。。。</p><p>从深圳湾口岸入境。谷歌地图上查南航公司有辆公交到，结果没有。走到桂庙新村公交站，最早一班到深圳湾口岸的公交是6:30发车，到桂庙要7点 <span class='read-more'><a href='http://daniex.info/20120102hk.html'>    [继续阅读....]</a></span></p><div class="clear-float"></div>
		]]></description>
			<content:encoded><![CDATA[<p>这是我第二次到香港，第一次只去湾下海海岸公园露营潜浮，还有就西贡某条街呆了一个小时。所以，可以说我没去过hk。。。</p>
<p>为了说起来我确实像是来过香港而不是招摇撞骗的，不得已，我得再来一次认认路。于是，这次hk之旅就像第一次去广州一样是暴走。记录以下路线图。。。</p>
<p>从深圳湾口岸入境。谷歌地图上查南航公司有辆公交到，结果没有。走到桂庙新村公交站，最早一班到深圳湾口岸的公交是6:30发车，到桂庙要7点出头。过关，坐B3X到红桥，转960到湾仔轩尼诗道上的菲明林道下，9点出头。差不多下图右边的蓝点，然后往铜锣湾方向走，绕了下维多利亚公园，香港中央图书馆。然后往回走去铜锣湾的Sogo和世贸中心，到10点终于开门。9点半的时候路过那里GUCCI和PRADA的专卖店，看到外面一票漂亮妹子在等开门，大半嘴里叼了根烟。10点回来，一看，原来都是服务员，不是等开门扫货的。。。</p>
<p>然后往东走，湾仔，金钟，中环，上环。什么湾仔运动场，码头，保时捷专卖店，维多利亚港南岸海边，会展中心，湾仔市政中心，某艺术馆，太古广场，金钟市政中心，香港区政府，各种大楼，皇后大道，兰桂坊，置地广场，周围一片闹市。</p>
<p>看到穆斯林女性，围着头巾。但是，年轻的围着黑头巾，穿的是hiphop，牛仔裤的裆掉到膝盖。经常看到大厦外某角落藏着一妹子，着装时尚前卫，发呆、玩手机、打电话，一只手里面必然叼着一支烟。金钟到中环之间，各个公园都被东南亚的妹子阿姨占领了。。。</p>
<p><img class="aligncenter" title="香港" src="http://farm8.staticflickr.com/7002/6626822055_450a6e81c3_z.jpg" alt="" width="640" height="339" /></p>
<p>&nbsp;</p>
<p>然后在中环做地铁到旺角，绕一圈，然后油麻地，尖沙咀，新港中心，海港城，维多利亚港看看，星光大道，再去红磡坐地铁到罗湖。回家。</p>
<p>一堆ICAC，但是比起周生生周大福的店就少太多太多了。</p>
<p><img class="aligncenter" title="香港啊" src="http://farm8.staticflickr.com/7164/6626822633_54805d13ab_z.jpg" alt="" width="549" height="454" /><br /><strong>随机文章:</strong>
<ul class="random-posts">
<li><a href="http://daniex.info/using-openssl-keytool-build-sslconnection-between-c-java.html" rel="bookmark" title="2011/05/03">使用OpenSSL和Keytool在java和C++间建立SSL链接</a></li>
<li><a href="http://daniex.info/c-calling-c-dll-commissioned.html" rel="bookmark" title="2011/06/21">C#调用C++DLL&#8211;委托</a></li>
<li><a href="http://daniex.info/the-top-of-the-wave.html" rel="bookmark" title="2011/11/14">浪潮之巅</a></li>
<li><a href="http://daniex.info/windows-install-openssl.html" rel="bookmark" title="2011/03/28">Windows下安装OpenSSL</a></li>
<li><a href="http://daniex.info/scalp-itching.html" rel="bookmark" title="2010/08/18">看着就头皮发痒了。。。</a></li>
</ul>
<p><!-- Random Posts took 15.640 ms --></p>
<br><blockquote><div><a title="澄清的半亩方塘" href="http://daniex.info">澄清的半亩方塘</a>-<a rel="bookmark" title="20120102HK" href="http://daniex.info/20120102hk.html">《20120102HK》</a><br></div& gt;<div>本文链接地址：<a rel="bookmark" title="20120102HK" href="http://daniex.info/20120102hk.html">http://daniex.info/20120102hk.html</a></div></blockquote>]]></content:encoded>
			<wfw:commentRss>http://daniex.info/20120102hk.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>win7下使用virtualbox制作mac虚拟机后root用户开启分辨率和输入法问题</title>
		<link>http://daniex.info/mac-virtual-machine-root-resolution.html</link>
		<comments>http://daniex.info/mac-virtual-machine-root-resolution.html#comments</comments>
		<pubDate>Thu, 29 Dec 2011 14:55:34 +0000</pubDate>
		<dc:creator>澄清</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[编程开发]]></category>
		<category><![CDATA[Http]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[虚拟机]]></category>
		<category><![CDATA[问题]]></category>

		<guid isPermaLink="false">http://daniex.info/?p=1062</guid>
		<description><![CDATA[<p>闲来无事就折腾了下，其实很久之前就想玩下苹果操作系统了，由于自己的笔记本太老土不支持虚拟64位，放弃。最近又有了兴致，就继续折腾。</p><p>mac虚拟机制作已经是老生常谈的话题，我也不多废话，给个链接大家去参考参考，一步步照做就行了。用virtualbox虚拟机安装</p><p>Mac OS 10.6.x详细步骤-用vmware安装失败的可以看这里（不断更新） <a href="http://bbs.weiphone.com/read-htm-tid-1702048.html">http://bbs.weiphone.com/ <span class='read-more'><a href='http://daniex.info/mac-virtual-machine-root-resolution.html'>    [继续阅读....]</a></span></a></p><div class="clear-float"></div>
		]]></description>
			<content:encoded><![CDATA[<p>闲来无事就折腾了下，其实很久之前就想玩下苹果操作系统了，由于自己的笔记本太老土不支持虚拟64位，放弃。最近又有了兴致，就继续折腾。</p>
<p>mac虚拟机制作已经是老生常谈的话题，我也不多废话，给个链接大家去参考参考，一步步照做就行了。用virtualbox虚拟机安装</p>
<p>Mac OS 10.6.x详细步骤-用vmware安装失败的可以看这里（不断更新） <a href="http://bbs.weiphone.com/read-htm-tid-1702048.html">http://bbs.weiphone.com/read-htm-tid-1702048.html</a></p>
<p>&nbsp;</p>
<p>这里说一下虚拟机装完后的两件事。</p>
<h2 style="background-color: #e3e3e3;">开启Mac OS X系统Root用户权限</h2>
<p><a href="http://article.yeeyan.org/view/187683/151364">http://article.yeeyan.org/view/187683/151364</a></p>
<h2 style="background-color: #e3e3e3;">怎样更改mac的分辨率</h2>
<p><a href="http://jingyan.baidu.com/article/4e5b3e198d5bbb91901e24bd.html">http://jingyan.baidu.com/article/4e5b3e198d5bbb91901e24bd.html</a></p>
<p>&nbsp;</p>
<p>root 权限照着做很快就搞定了。但是分辨率的问题一直没有弄好。照着几个方法都做了还是未成功。最后无奈放弃，我也不弄ios开发，只是看看玩玩。</p>
<p>上图为证：</p>
<p><img class="aligncenter" title="mac" src="http://farm8.staticflickr.com/7016/6594196203_a1ddc74ef5_z.jpg" alt="" width="640" height="463" /></p>
<p>还有个，是输入法的问题。我装的是英文的系统，但是语言包其实他都有了，只要设置下。在system preference 的language&amp;text项目，input source 选项卡中中勾选你要的语言就ok了。当然也可以去下载第三方的输入法。<br /><strong>随机文章:</strong>
<ul class="random-posts">
<li><a href="http://daniex.info/wordpress-comment-reverse.html" rel="bookmark" title="2011/02/23">WordPress评论显示倒序</a></li>
<li><a href="http://daniex.info/c-calling-c-dll-commissioned.html" rel="bookmark" title="2011/06/21">C#调用C++DLL&#8211;委托</a></li>
<li><a href="http://daniex.info/placement-was-nowhere-to-flee.html" rel="bookmark" title="2010/09/06">流窜绍兴</a></li>
<li><a href="http://daniex.info/on-foot-through-the-danxiashan.html" rel="bookmark" title="2011/11/30">第四届徒步穿越丹霞山活动</a></li>
<li><a href="http://daniex.info/be-your-own-boss-1.html" rel="bookmark" title="2010/07/20">你想成为自己的老板么？——让你不断前进的八个秘诀（上）</a></li>
</ul>
<p><!-- Random Posts took 16.607 ms --></p>
<br><blockquote><div><a title="澄清的半亩方塘" href="http://daniex.info">澄清的半亩方塘</a>-<a rel="bookmark" title="win7下使用virtualbox制作mac虚拟机后root用户开启分辨率和输入法问题" href="http://daniex.info/mac-virtual-machine-root-resolution.html">《win7下使用virtualbox制作mac虚拟机后root用户开启分辨率和输入法问题》</a><br></div& gt;<div>本文链接地址：<a rel="bookmark" title="win7下使用virtualbox制作mac虚拟机后root用户开启分辨率和输入法问题" href="http://daniex.info/mac-virtual-machine-root-resolution.html">http://daniex.info/mac-virtual-machine-root-resolution.html</a></div></blockquote>]]></content:encoded>
			<wfw:commentRss>http://daniex.info/mac-virtual-machine-root-resolution.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>穿越三水线，我们毕业了！</title>
		<link>http://daniex.info/through-the-sanshui-line-we-graduated.html</link>
		<comments>http://daniex.info/through-the-sanshui-line-we-graduated.html#comments</comments>
		<pubDate>Tue, 27 Dec 2011 04:48:00 +0000</pubDate>
		<dc:creator>澄清</dc:creator>
				<category><![CDATA[生活点滴]]></category>
		<category><![CDATA[运动]]></category>
		<category><![CDATA[书]]></category>
		<category><![CDATA[徒步]]></category>
		<category><![CDATA[暴走]]></category>
		<category><![CDATA[杂记]]></category>
		<category><![CDATA[毕业]]></category>
		<category><![CDATA[深圳]]></category>

		<guid isPermaLink="false">http://daniex.info/?p=1057</guid>
		<description><![CDATA[<p>&#160;</p><p>2011年12月25日，登协组织了一次特别的圣诞节活动——三水线穿越。</p><p>&#160;</p><p>三水线就是水祖坑至三杆笔，是沿深圳与惠州交界之山脊防火带从头至尾，大致18公里左右，俗称五行线：起点三杆笔（木）经火烧天（火）、土地庙（土）、金龟村（金）、到达终点水祖坑（水）。笔架山（三杆笔）海拔717米，田心山（水祖坑）海拔684米，高度在深圳排名分别为第五、第七。一路上遮荫的地方极 <span class='read-more'><a href='http://daniex.info/through-the-sanshui-line-we-graduated.html'>    [继续阅读....]</a></span></p><div class="clear-float"></div>
		]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>2011年12月25日，登协组织了一次特别的圣诞节活动——三水线穿越。</p>
<p>&nbsp;</p>
<p>三水线就是水祖坑至三杆笔，是沿深圳与惠州交界之山脊防火带从头至尾，大致18公里左右，俗称五行线：起点三杆笔（木）经火烧天（火）、土地庙（土）、金龟村（金）、到达终点水祖坑（水）。笔架山（三杆笔）海拔717米，田心山（水祖坑）海拔684米，高度在深圳排名分别为第五、第七。一路上遮荫的地方极少，连续三十几个山头，三水线有两个下撤点，一个是土地庙，一个是金龟村。此线路因季节不同难度也有所不同，夏季为最难，全程暴晒以及对水的补充都是严峻的考验，这条线可以说是深圳周边里相对比较难的线路。是许多驴友必走的线路，也是新驴踏入驴界应该要走的线路，考验的是长时间的行走能力和一定的背负能力。有许多驴友都走了N遍，但还是会走，可见此线路的魅力。</p>
<p>&nbsp;</p>
<p>30多个山头，上上下下，挑战的是体力和耐力，走完了这条线，对户外的认识又进了一步。三水线也称为考试线路，有的人说，走完三水线全程你就是合格驴了，有的人说走完三水就更加喜欢户外了，有的人说走完三水那是人生的记忆。也许在这条线上太多的回忆，也许在这条线上太多的汗水，也许更多的是痛并快乐着。有的人说，走三水线要懂得放弃，如果实在坚持不下去了，那就选择下撤，有时候，懂得放弃才能彻吾人生。</p>
<p>&nbsp;</p>
<p>登协三水线活动是一年一次。为了不重蹈去年晚上8点下山的覆辙，从报名到精选队员，老黄也是下了不少功夫。走夜路难，还很危险，要顾及几十人的队伍不出意外，组织人员压力很大。报名公告周一就提前发出，强调线路难度。报名需知里要求给出户外经历，老黄更是把百公里，三水线，山野百里这种重量级数据亮出来，好让大家好掂量掂量自己的能力。</p>
<p>&nbsp;</p>
<p>7：00科技园出发</p>
<p>8：50正式开始登山</p>
<p>下车后大家走了一小段绿道到惠州深圳交界处，左手边崇山峻岭，右手边碧海蓝天。天气凉爽，微风习习，正是大大降低山水线穿越难度的好天气。</p>
<p>&nbsp;</p>
<p>10：40到达火烧天。</p>
<p>一口气过三杆笔到达火烧天，大家的状态良好，一派轻松。偶遇山友成员木易，感谢木易协助我们殿后。在火烧天大家合影留念，拍摄艾默生登的协旅游驴友证靓照。</p>
<p>&nbsp;</p>
<p>11：08火烧天开拔。12：20到达土地庙</p>
<p>到达土地庙的时候，很多驴友已经在这里修整吃午饭，容不下更多的人了。一部分我们的人就继续走到下个山头修整。大家的环保意识都很好，垃圾装袋带下山。现在的环保口号是“除了脚印什么都不留下”。就连瓜皮果壳，能带的统统都要带下山，这么多热爱登山徒步的人如果都留着橘子皮让大自然自己消化，这任务实在太过艰巨。</p>
<p>14：50金龟村出发</p>
<p>在金龟村我们有三位队员下撤，他们中有人是有实力走完全程的。只是当天穿的鞋抓地不好，下山的路又很陡很滑，实在是很伤脚，拖到走夜路就更不安全了。下次做好充分准备，继续挑战！</p>
<p>&nbsp;</p>
<p>17：30完成穿越</p>
<p>以上是殿后人员的时间数据，走的快的队员光在金龟村就等了近一个小时。更是早早就到达终点。公司真是卧虎藏龙，猛驴不少。</p>
<p>&nbsp;</p>
<p>此次顺利完成三水先旅游毕业之旅的有23人，我们毕业啦！我们能拿到登协颁发的驴友毕业证书啦！</p>
<p>&nbsp;</p>
<p>毕业走完三水线，是一个分界。走过多次三水线的也有区别。走过了之后还想去走的，那一般来说就是一个ZN（自虐）的驴，而走完了就不想再去的，则大多都是FB（腐败）的驴了。ZN的人一般是在苦难中的人，FB的人多是幸福的人，所以我其实很想做个FB的人，如果有一天我再踏上这路,说明我还在磨难中煎熬。想做一个驴子吗？那么来体验三水吧！</p>
<p>&nbsp;</p>
<p>=======================================</p>
<p>好了，上图上图，flickr的图片，在<span style="color: #3366ff;"><a title="三水线" href="http://www.flickr.com/photos/daniex/sets/72157628620087897/show/" target="_blank"><span style="color: #3366ff;">这里这里这里</span></a></span></p>
<p>&nbsp;</p>
<p>挑几个放这里。</p>
<p><img class="aligncenter" title="人" src="http://farm8.staticflickr.com/7167/6594117847_a36fb313dd.jpg" alt="" width="500" height="375" /></p>
<p><img class="aligncenter" title="山" src="http://farm8.staticflickr.com/7028/6594116501_4d52079b2d.jpg" alt="" width="500" height="375" /></p>
<p><img class="aligncenter" title="海" src="http://farm8.staticflickr.com/7170/6594115255_64e813475e.jpg" alt="" width="500" height="375" /><br /><strong>随机文章:</strong>
<ul class="random-posts">
<li><a href="http://daniex.info/hushi-how-to-pursue-studies-2.html" rel="bookmark" title="2011/05/01">胡适谈治学方法——第二讲</a></li>
<li><a href="http://daniex.info/wpf-datagrid.html" rel="bookmark" title="2011/09/01">WPF DataGrid 绑定数据</a></li>
<li><a href="http://daniex.info/to-university-graduates.html" rel="bookmark" title="2010/07/08">胡适：赠与今年的大学毕业生</a></li>
<li><a href="http://daniex.info/20120102hk.html" rel="bookmark" title="2012/01/03">20120102HK</a></li>
<li><a href="http://daniex.info/greek-mythology.html" rel="bookmark" title="2011/10/05">希腊神话故事</a></li>
</ul>
<p><!-- Random Posts took 17.889 ms --></p>
<br><blockquote><div><a title="澄清的半亩方塘" href="http://daniex.info">澄清的半亩方塘</a>-<a rel="bookmark" title="穿越三水线，我们毕业了！" href="http://daniex.info/through-the-sanshui-line-we-graduated.html">《穿越三水线，我们毕业了！》</a><br></div& gt;<div>本文链接地址：<a rel="bookmark" title="穿越三水线，我们毕业了！" href="http://daniex.info/through-the-sanshui-line-we-graduated.html">http://daniex.info/through-the-sanshui-line-we-graduated.html</a></div></blockquote>]]></content:encoded>
			<wfw:commentRss>http://daniex.info/through-the-sanshui-line-we-graduated.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>金陵十三钗</title>
		<link>http://daniex.info/the-flowers-of-war.html</link>
		<comments>http://daniex.info/the-flowers-of-war.html#comments</comments>
		<pubDate>Tue, 20 Dec 2011 16:44:03 +0000</pubDate>
		<dc:creator>澄清</dc:creator>
				<category><![CDATA[娱乐]]></category>
		<category><![CDATA[生活点滴]]></category>
		<category><![CDATA[书]]></category>
		<category><![CDATA[学生]]></category>
		<category><![CDATA[文化]]></category>
		<category><![CDATA[深圳]]></category>
		<category><![CDATA[片头]]></category>
		<category><![CDATA[电影]]></category>

		<guid isPermaLink="false">http://daniex.info/?p=1051</guid>
		<description><![CDATA[<p>趁热写点东西。本来没准备去看的，下班回家发现无事可干，就走去电影院了。感谢亮亮马上过期的电影票。看完跑步回家，两公里不到。</p><p>刚开场就是一串南京话，都能听懂。来深圳久了，一听类似吴侬软语的方言，倍感情切。笼罩南京灰蒙蒙的空气让人印象深刻，直接有身临前阵子口耳相传的北京的感觉。战士们妆华的真黑，再一想到为妻生子的佟大当年那张白面书生脸，感觉时空错乱很不搭调。学到个单词priest，喝酒的pries <span class='read-more'><a href='http://daniex.info/the-flowers-of-war.html'>    [继续阅读....]</a></span></p><div class="clear-float"></div>
		]]></description>
			<content:encoded><![CDATA[<p>趁热写点东西。本来没准备去看的，下班回家发现无事可干，就走去电影院了。感谢亮亮马上过期的电影票。看完跑步回家，两公里不到。</p>
<p>刚开场就是一串南京话，都能听懂。来深圳久了，一听类似吴侬软语的方言，倍感情切。笼罩南京灰蒙蒙的空气让人印象深刻，直接有身临前阵子口耳相传的北京的感觉。战士们妆华的真黑，再一想到为妻生子的佟大当年那张白面书生脸，感觉时空错乱很不搭调。学到个单词priest，喝酒的priest背太驼了，严重印象画面感，二流子也不至于这样啊。玉墨的英语很好了，语气还可以更好些。学生们哭得太多了，极个别时刻感觉就只是拉长了脸。头牌和二流子的一点点肉喜看的很没必要，非得每部电影里都有么？换个方式表达您的意思好哇？！一曲《秦淮景》来的很有气场，含情脉脉，似耳边呢喃，苏州评弹味道一下就把人带入了温柔乡。台词总体还行，就是有些一听就知道是为了引出下面一句。priest最后送个招财猫给蚊子干嘛呢！看你很呆很傻很不知所措啊！戏里的日本人终于不全是傻子了，但还是很傻。都英文的我爸妈看不明白。真演戏的人一个手都数的过来，这阵容也太不张艺谋了。</p>
<p>总的看整部电影就是一部拍的还可以的南京大屠杀背景的片。不只是看多了还是咋滴，就觉得煽情有那么点，震撼就一点点。记得有部片子最后是，一辆车拉出来，露出几条了无生气横陈的玉腿。</p>
<p>好吧，都说瑕疵去了，俺是处女座的。豆瓣给了四颗星。</p>
<p>&nbsp;</p>
<p><img class="aligncenter" title="金陵十三钗" src="http://farm8.staticflickr.com/7157/6544048691_da5a24cc0c.jpg" alt="" width="358" height="500" /><br /><strong>随机文章:</strong>
<ul class="random-posts">
<li><a href="http://daniex.info/twittertoall.html" rel="bookmark" title="2010/07/13">twitter、微博、WordPress的同步</a></li>
<li><a href="http://daniex.info/wp_list_categories.html" rel="bookmark" title="2011/10/25">利用wp_list_categories做worldpress文章分类列表</a></li>
<li><a href="http://daniex.info/wp-tragic-history-of-moving.html" rel="bookmark" title="2011/02/28">wp搬家血泪史</a></li>
<li><a href="http://daniex.info/hu-tolerance-and-freedom.html" rel="bookmark" title="2011/10/30">胡适：容忍与自由</a></li>
<li><a href="http://daniex.info/employeemanagement.html" rel="bookmark" title="2010/08/05">七个步骤消除工作场所的紧张气氛——别让让未解决的矛盾污染你的办公室</a></li>
</ul>
<p><!-- Random Posts took 16.991 ms --></p>
<br><blockquote><div><a title="澄清的半亩方塘" href="http://daniex.info">澄清的半亩方塘</a>-<a rel="bookmark" title="金陵十三钗" href="http://daniex.info/the-flowers-of-war.html">《金陵十三钗》</a><br></div& gt;<div>本文链接地址：<a rel="bookmark" title="金陵十三钗" href="http://daniex.info/the-flowers-of-war.html">http://daniex.info/the-flowers-of-war.html</a></div></blockquote>]]></content:encoded>
			<wfw:commentRss>http://daniex.info/the-flowers-of-war.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

