文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院工具软件电子邮件张小龙谈如何写E-mail软件
精品广告
推荐TOP10
·新手入门:企业邮箱及邮件服务器架设
·Windows 2003邮件服务器配置指南(图)
·Foxmail中轻松找回已删除的电子邮箱
·CMailServer用户常见问题解答
·反垃圾:9个方法告别垃圾邮件
·JavaMail常见问题之安装和配置问题解答
·巧妙设置系统 轻松防治邮件病毒
·Yahoo电子邮箱最新玩酷技巧!
·Foxmail初级技巧应用解答
·如何设置认证SMTP邮件服务器
阅读TOP10
·Windows 2003邮件服务器配置指南(图)
·使用UTF-8编码/JMail组件发送邮件乱码问题
·新手入门:企业邮箱及邮件服务器架设
·Foxmail中轻松找回已删除的电子邮箱
·用客户端软件收发Hotmail Yahoo邮件
·Live Communication Server 2003安装和管理指南
·利用OpenSmtp.Net发送需要smtp验证的邮件
·巧妙突破大容量邮箱附件大小限制
·邮件发错不要慌 绝招帮你及时撤回来
·利用JavaMail收/发Gmail邮件(SSL)

张小龙谈如何写E-mail软件

日期:2006年12月19日 作者: 查看:[大字体 中字体 小字体]


  编者语:鼎鼎大名的Foxmail软件制作者,你一定不会陌生吧!本刊第三期特刊还刊登过此君的生活照一张,可谓威风八面。小编此次突发奇想,“死缠烂打”,费了九牛二虎之力,终于约他写了一篇有关写E-mail软件的文章,这可是大家之作哟!各位赶快来品尝吧!

张小龙谈如何写E-mail软件

  《新潮电子》的编辑向我约稿,而我一向都是懒得写文章的,但编辑说是写关于怎样写邮件软件的,因为很多读者对开发邮件程序感兴趣。我想这倒比其他内容好写些,因为开发foxmail的缘故,毕竟积累了一些想法。但因为是面向大众的文章,技术性又不能太强,因此主要从概念上说说我自己的看法。
  首先要确定的是你要开发的邮件软件的应用对象和范围。分为三类吧,第一类,你的目标是通用的E-mail软件,就像foxmail, outlook一样。第二类,是E-mail的一些分支,如邮件监测器(POP3 Monitor,自动检测服务器上是否有邮件到来),批量邮件发送器(bulk emailer)等。第三类,是将E-mail应用到某些软件项目中,比如,你可能须要在一个MIS项目中用E-mail来传输数据,或在Web上提供发送邮件的功能(如贺卡)。
  关于三种类型,他们的实现方法和难度是不一样的。为了讲解方便,我们将上面三种类型称为A类,B类和C类。其中A类因为用户的覆盖面最广,须要考虑的因素最多,对程序的稳定性和适应性要求也最大,B类次之。
  下面的内容主要集中在邮件相关知识上。我要强调的是,一个邮件软件,更多的是非网络的处理。因为邮件软件不同于其它的网络应用,邮件软件要更贴近用户,实际上是一个日常办公应用。事实上,在Foxmail中,网络部分的处理可能只用了10%的精力。

一、了解TCP/IP网络编程方法
  对于A类和部分B类应用,要求你自己编程实现基于TCP的邮件通讯。因此对TCP/IP编程的理解是必要的。而且一旦你掌握了TCP/IP的编程方法,你可以完成更多的网络程序,比如FTP, HTTP等。这里没法深入去讨论,因为这是一本书或几本书的内容。因此只能向你推荐我自己觉得必看的书目:

1.Internet的经典教材:
书名:Internetworking With TCP/IP。作者:Douglas E. Comer。出版:Prentice Hall。
中译本:《用TCP/IP进行网际互连》。出版:电子工业出版社。
这套书共有三卷。清华大学出版社在国内发行英文版,因为价格比国外买便宜,前不久我还在广州买了一套寄给在美国念书的朋友(邮费比书还贵)。

2.一本很好的关于Winsock编程的书
书名:《Internet编程》,电子工业出版社,1996。
这是一本翻译过来的书,详细讲解了TCP/IP编程的概念和方法。其中对Unix socket和Windows socket编程的区别,以及Windows下socket的同步和异步,消息和多线程等概念讲解透砌。1996年我就是因为看了这本书,萌发了写foxmail的想法。

二、了解电子邮件相关的标准
  对A类和B类应用,有必要非常熟悉网络协议,特别是与E-mail相关的RFC协议。RFC是Request for Comments的简称,Internet的绝大部分协议都是通过RFC的方式提供与更新的,比如我们常用的HTTP协议,就是由RFC2068 定义的。与E-mail相关(通讯,邮件格式,附件编码等)的协议有很多,以下是必须要看的RFC:
RFC 821 (SMTP,简单邮件传输协议,定义了发送邮件的机制)
RFC 822 (邮件格式定义)
RFC 1725 (POP3,邮局协议版本3,定义了从POP3服务器收取邮件的机制)
RFC 1521 (MIME标准)
RFC 1522 (MIME 标准2)
  在这里,因为篇幅关系,没有办法深入讲解,因此只能由读者自己查阅这些文档。这些文档可以在Internet上很多站点找到,比如http://www.cis.ohio-state.edu/htbin/rfc/INDEX.rfc.html就列出了全部的RFC文档。
对于C类应用(和部分B类应用),可以不去关心这些协议,因为你可以采用一些现成的控件来完成邮件的功能,封装得好的控件可以完全屏蔽掉这些实现细节。

三、非网络的因素
  如前面所说的,你须要投入更大的精力到其它非网络的部分的开发中,因为作为一个应用软件,你要细致地处理每个细节。但这里说的并不是各个特性细节的堆砌。比如对于A类应用,你须要做好合理的系统设计,然后对设计中的每个大模块找到好的实现方法。比如电子邮件的存储,我称它为邮箱文件系统,事实上是个基于索引的变长记录系统。如收件箱,由两个文件组成,In.ind是索引文件,记录了每个邮件的摘要信息(发件人,主题,日期等),更重要的是,每个邮件在数据文件中的位置;数据文件是in.box,简单地记录了每个邮件的原始内容。邮箱文件系统的原理并不难理解,难的是要保证其非常高的稳定性,因为邮箱文件的设计错误将直接导致邮件的丢失。

[1] [2] 下一页 

上一篇:Windows live免费邮局攻略

下一篇:对PUSHEMAIL业务平台性能的测试


相关软件: 相关文章:
·张小龙谈如何写E-mail软件

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号