微尘邮件pop3服务器1.000版
系统简介
本服务器是由我个人根据POP3协议的说明文件独立完成的。本服务器实现了全部的POP3的标准特性和部分可选特性(具体请参照附带的POP3协议,我的实现即可满足一般的邮件客户端软件,如outlook和foxmail)。本服务器现在没有实现webmail功能。
系统要求
硬件要求,可以安装运行win2000即可!
软件要求,win2000 server版,安装IIS,并已安装虚拟smtp服务器。VB 6.0(用来编译源程序和控件),ODBC支持(win2000内置)。你的电脑必须连到internet并有独立的域名。
安装方式:
1、开启IIS的虚拟smtp服务器,并加入一个别名域,就是你拥有的域名。这样你的虚拟smtp服务器的缺省信件目录应该是C:\Inetpub\mailroot\Drop(如果不是的话,抱歉请在我的代码中把C:\Inetpub\mailroot\Drop改成你的信件目录)。
2、在ODBC中加入一个系统DSN,名为mail,指向文件maildata.mdb。
3、在d:\建立如下的目录
d:\webmail
d:\webmail\nouser
d:\webmail\user
6、把web目录的文件放进你的网站目录即可
5、用VB打开mailserver.vbg,编译mailsock.vbp,mailsock.ocx.得到一个再编译mailserverprj.vbp得到mailserverprj.exe 即可。
工作原理
与SMTP的接口部分:
当IIS的虚拟smtp服务器运行时,你发给yourname@yourdomain(一个名字@你的域名)的信件,就会被放在C:\Inetpub\mailroot\Drop。我的程序定时搜索这个目录,一旦发现文件就分析文件头,来的知道发给谁的(比如说这人叫aaa)。然后判断这个aa是否是我们用户(在数据库的user表中查找)。如果不是就把信息移动到d:\webmail\nouser目录,如果是就发到d:\webmail\user\aaa目录。然后在d:\webmail\user\aaa找到信,把信的内容放到数据库中(这样做很多余,是因为我一时糊涂。现在没时间改了,反正这是个原理实现)。
POP3部分:
我用一个自制的控件来实现和客户端的通信,得到客户端的命令就激发一个事件,再用程序去处理这个事件。这样主要是要把POP3的实现和信的存储和处理分开,来避免负责性。(这里的失误就是我的控件里用了太多的全局变量,就是属性。其实有很多可以不用全局的就行。)
已存在的问题
1、当信件较大的时候,由于向数据库一次写入大量数据,会使CPU占用和内存占用急速上升。这是由于我一开始的错误计划造成的。现在我发现用数据库存信的内容是不合理的。
2、TOP n n的实现是错误的。写程序的时候,看TOP属于可选的特性就懒了,没有实现。后来发现邮件检查软件一般都是利用TOP进行信件检查的,所以今天早上匆忙进行实现。但是,我又敷衍了事了。因为今天我忙得不可开交。没办法。
3、没有实现服务器上保留信件备份。我现在对这个特性的实现还没想好。如果在FOXmail里面设置了服务器上保留信件备份,就会每次收信都收到以前收到过的信。
版权问题
你可以在不改变这个压缩包内容的前提下,任意复制传播。任何的修改请附上未改动的版本和我的版本信息。本版为测试版,控件和程序允许任意的复制。正式版的控件可以任意使用,程序不得本人允许,不得复制传播。
微尘工作室:郝培强
联系地址:四川省南充市西南石油学院设备97 郝培强
电话:0817-2642330
OICQ:356333
mail:haopq@swpi.edu.cm
2001年7月1日最后修改