代码改变世界

开源项目 开发心得 (1) 之 Mail Monitor(邮件监测器) Part I.(概述)

2004-06-16 13:08  灵感之源  阅读(...)  评论(... 编辑 收藏
这是开发心得系列的第一篇,希望开个好头。

说明:开发心得并不会特别强调高效/技巧,只谈技术的实现,但我很欢迎有更好的实现方法。

前言:在过去的两个星期里面,我在工余时间用C#开发了利用我做admin的开源项目OpenPOP.NET做的Mail Monitor(邮件监测器),把OpenPOP.NET的所有功能特性都应用到其中了,而且都是开源的(http://sourceforge.net/projects/hpop/)。最新的版本可以在这里获取:http://www.cnblogs.com/Files/unruledboy/OpenPOP.zip

目的:在开发Mail Monitor(邮件监测器)的过程中,我特别地意识到用各种.NET技术,尽量展现.NET的特性,尽管我没有对性能特别优化。

需求:Mail Monitor(邮件监测器)的需求最初来源于要为OpenPOP.NET写一个全面体现其特性的例子,后来鉴于自己平时邮件比较多,但不方便经常去接收,所以特别照顾这个需求,写成了今天这个Mail Monitor(邮件监测器),用以实时检测各个自定义邮件账户是否新邮件到达,如果有,自动给予提示,并能直接查看内容和保存附件(或许这是其它同类软件没有实现的),目前只支持POP协议,因为核心是OpenPOP.NET,没有实现对MAPI/HTTP Mail等的支持,不过我们正在开发其它协议,相信很快会推出。

设计:为了照顾OpenPOP.NET的用户,我选择使用C#作为开发语言;为了减少依赖,我使用对象序列化来保存配置和邮件列表信息,并直接保存邮件源文件到本地加快浏览速度。Mail Monitor(邮件监测器)要实现的功能很简单,主要是检测新邮件。我这样设计UI:
  1、主页面为账户(邮箱)列表,显示邮箱名称、邮件数、检测时间和当前操作状态,菜单、工具栏和状态栏的设计也没有什么特别的;
  2、当用户双击邮箱,马上下载所有该邮箱的邮件列表;
  3、在邮件列表中,用户可以选择删除邮件,双击邮件可以查看邮件内容,这个时候Mail Monitor(邮件监测器)自动保存完整的邮件源文件到本地;
  4、在邮件内容页面,用户可以保存附件(如果有),另存为本地EML文件,或者直接打开本地EML文件查看内容;
  5、在配置页面,用户可以定义Mail Monitor(邮件监测器)的运行模式,邮件到达提醒方式和管理邮箱(账户)。

实现OpenPOP.NET已经做得很好了,支持完整的POP协议,Mail Monitor(邮件监测器)需要做的只是调用其功能而已。

(待续)...