webdn
 
  首页     免费截图     VIP会员区     广告Banner     技术文档     网站模板  
网站截图,网站每日新 !
虚拟主机
网页模板

首页 >> WebDN 文档 >> 网络编程 >> ASP.net 技术资料 >> Page 26 >> .NET TNT Email Server Tester说明

 

.NET TNT Email Server Tester说明

【摘 要】 TNT Email Server Tester本身是一个小型的email服务器,但是基本内核功能基于common.dll server.dll 。本测试版以及将来发行版都不会包含着两个核心库文件的源代码,但是会发布一套参考开发email server的源代码,供大家学习使用SDK。

一、引言

TNT Email Server Tester是一个支持多域名的email 服务器的测试版本。他实现了SMTP/POP3接口,基本上实现了一个小型的email服务器。

本测试器版本包含源代码,供大家参考。

通过大家测试,提出修改建议和意见,我会修改,并给提出宝贵意见者一套发行版SDK

 

二、SDK

TNT Email Server Tester本身是一个小型的email服务器,但是基本内核功能基于common.dll server.dll 。本测试版以及将来发行版都不会包含着两个核心库文件的源代码,但是会发布一套参考开发email server的源代码,供大家学习使用SDK

关于SDK的详细资料,可能要等到我的发行版商业化了才会见到。

全部开发基于C#开发,我的.net framework v1.0.3705,不过相信在其他1.1版本的framework上应该也可以运行。如果出现一些异常情况,且你能够及时联系我,我将非常感激。

要获得一套完整的email服务器,需要您准备确定以下信息:

1、  email 的根目录

2、  email pickup目录,也就是本地投递的捡取目录。Server.dll包含了监视这个目录并发送此目录中eml文件的服务线程。

3、  email queue目录,也就是eml的排队缓冲目录。Server.dll包含了监视这个目录并发送此目录中eml文件的服务线程。DispSvc会根据这个目录的eml文件信息发送信件到墓地存储目录或者外发邮件目录

4、  email Drop 目录,也就是确定是本地的邮件存储目录,会有系统服务线程从此目录将eml文件发送到特定的本地用户邮箱。

5、  email outPost目录,也就是需要发送到外部的邮件的存储目录

6、  确定mailBox目录,也就是用户邮箱的存储地

7、  为本地域名建立邮箱存储目录。假设当前email server服务的域名是abc.com,那么需要在mailBox目录上建立一个域名目录abc.com,然后再在此目录下创建用户目录mailbox目录和userinfo.ini文件。假设用户名info

就是….\mailbox\abc.com\info\mailbox\目录

文件……\mailbox\abc.com\info\userinfo.ini

userinfo.ini的格式为:

username=info

password=*********

FWDList=

Name=XXX

CreatTime=2003-1-1

Username= 一行表示存储此用户邮箱所属用户名,password行显然就是用户的密码存储。将来发行版本回考虑md5加密。其他的不重要,作为保留扩充需要。

8、  实际上,以上需要确定部分都在IserverInfo接口种定义。每一个服务器都需要两个接口才可以正常运转。

public interface IServerInfo

     {

         /// <summary>

         /// 获取服务器的各个目录字符串,通过常量索引返回相关配置信息

         /// 通过SVR_DIR_XXXX访问

         /// </summary>

         /// <returns>返回一个关于服务器目录的字符串数组,访问通过Common中的常量访问</returns>

          string[] ServerDirectorys();

 

         /// <summary>

         /// 获得服务器的各个域名,索引0为缺省域名

         /// 通过SVR_DOMAIN_XXXX访问

         /// </summary>

         /// <returns>返回服务器支持的全部域名</returns>

          string[] ServerDomains();

       

         /// <summary>

         /// 返回服务器的关于域名和MX解析的设定

         /// 通过SVR_DNS_XXXX访问

         /// </summary>

         /// <returns>返回DNS服务器信息IP</returns>

          string[] ServerDNSSetting();

 

         /// <summary>

         /// 包括的信息依次为:TCP超时  。。。。。。

         /// 通过常量访问SVR_RT_PARA_XXXX访问

         /// </summary>

         int[] ServerRunTimeParameters();

 

         /// <summary>

         /// 返回服务器交互当中返回的信息

         /// 访问通过SVR_REMSG_XXXX访问

         /// </summary>

          string[] ServerReplyMessage();

 

         /// <summary>

         /// 返回服务器端设定字符串

         /// 通过SVC_SETTING_XXXX访问

         /// </summary>

          string[] ServerSetting();

     }   

     以上接口很多返回数组,一般情况下,数组就是需要开发者确定的。详细参考例子。

9、  Ilog是一个记录内部信息的接口,帮助调用者了解线程调用发生的情况信息。

10、              测试环境:

.net framework 1.0以上

足够的存储空间和正确的确定目录。

 

 



电话咨询:010-60520722 QQ咨询:3792656   |   583696287   |   66733350 关于WebDN  |  站点地图  |  联系我们  |  支付方式  |  友情链接
© 2004-2008 WebDN.com 版权所有. 沪ICP备05040479号