MDAEMON邮件服务器修改

由于工作需要不得不修改MDAEMON的Webmail,修改后总结了几条、也发现了几个问题,写出来和大家讨论讨论,附上一个小弟我做的main.html页的例子,大家一起研究。

说明:
1.      路径说明:
此次修改都是以/MDaemon/WorldClient/Templates/Standard目录下的文件为基本模板,修改全在此基础之上。
/MDaemon/WorldClient/Templates目录为模板目录,修改后的模板文件要覆盖此目录下的所有同名文件,以避免使用时出现不同模板的情况。
/MDaemon/WorldClient/HTML目录为WEBMAIL的主目录,此目录的文件可以在IIS中访问到,目录中存放的为IMG和CSS类型文件。浏览的过程中加载到模板中发送到客户端,形成浏览界面。所以在此目录中增加新文件才可以用相对路径的形式引用。

2.      文件说明:
    /MDaemon/WorldClient/HTML/WorldClient.dll,此文件是WEBMAIL的功能文件,所有浏览都由它解释、运行。接受参数传入,如:http://localhost:3000/WorldClient.dll?View=Main&user=sun&password=123456。此意义为用sun密码123456登陆。
3.      代码说明:
在模板文件中支持MDAEMON特定的代码,<$CODE$>格式表示的是代码部分,多位系统变量,如:<$THEME$>根据当前配置解释为Standard、Simple等,<$LINKS$>解释为链接“http://..../WorldClient.dll?Session=????”。[$CODE$]格式为多语言支持用于显示文本的代码,多用于提示信息等,如:[$Size$]表示为中文文本“大小”,如果是英文配置则为“SIZE”。
4.      修改方法:
增加、删除、修改相对应位置的代码即可。
技巧:?可以在浏览的时候点右键看属性来查找相应的要修改的代码位置
      ?不通过IIS,直接双击HTML文件查看,这样更明显。
5.              部分页的作用说明
文件名            说明
Menu.html            工具栏页
List.html            邮件列表页
Message.html      邮件详细页
Options.html      功能选项页
Options-Prefs.html      个性化设置页
Options-Compose.html      撰写功能选项页
Options-Folders.html      文件夹功能页
Logon.html            登陆页
AddrLookup.html      查找地址页
Compose-Attach.html      添加附件页
Compose.html      写邮件页


 

很多朋友都想到用自己的frame,因为这样可以集成到自己想要的地方去,经过小弟我研究,自己试着做了一个,功能实现了,就是方法有些笨,希望有大侠指点一二。


main.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<html>
     <head>
           <title>Frameset Template</title>
     </head>
     <frameset rows="64,*">
           <frame name="banner" scrolling="no" noresize>
           <frameset cols="150,*">
                 <frame name="menu" src="left.htm">
                 <frame name="main">
           </frameset>
           <noframes>
                 <p>This page requires frames, but your browser does not support them.</p>
           </noframes>
     </frameset>
</html>
 

其实这个简单,关键在于那个left.htm

left.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd";>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>left</title>
</head>
<script language=javascript>
function cmdurl(cmd)
{
     ur="http://localhost:3000/WorldClient.dll?View=Main&user=sun&password=123456&logon=no&cmd=";;
     ur=ur+cmd;
     parent.main.location.href=ur;     
}
function logon()
{
     parent.main.location.href="http://localhost:3000";;
}
</script>
<body>

<p><a href="javascript:cmdurl('compose');">写邮件</a></p>
<p><a href="javascript:cmdurl('index');">收件箱</a></p>
<p><a href="javascript:cmdurl('drafts');">草稿箱</a></p>
<p><a href="javascript:cmdurl('sent');">发件箱</a></p>
<p><a href="javascript:cmdurl('deleted');">回收站</a></p>

<p><a href="javascript:logon();"</a>登陆口</p>
</body>
</html>
 


说明一下,我是用cmd=""这样把参数传递给邮件服务器的,但它本身不能解释,所以要在下一步自己处理,那个logon参数是小弟特殊自用,稍后解释。那个user和password就根据你自己的需要了,这个传入它就是模拟了登陆过程。
下面就是修改MDAEMON自己的那个main.html页了
此页的路径为/MDaemon/WorldClient/Templates/Standard,这里我用的风格是standard配置,其他的风格可修改对应文件夹下的文件即可。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
  <title>WorldClient</title>
<script type="text/javascript">

function QueryString(){//构造参数对象并初始化
var name,value,i;
var str=location.href;//获得浏览器地址栏URL串
var num=str.indexOf("?")
str=str.substr(num+1);//截取“?”后面的参数串
var arrtmp=str.split("&");//将各参数分离形成参数数组
for(i=0;i < arrtmp.length;i++){
num=arrtmp[i].indexOf("=");
if(num>0){
name=arrtmp[i].substring(0,num);//取得参数名称
value=arrtmp[i].substr(num+1);//取得参数值
this[name]=value;//定义对象属性并初始化
}
}
}
var Request=new QueryString();//
var cmdstr = Request["cmd"];
var fr_url="<$Link$>&View=<$FRAMEVIEW$>";
var logon = Request["logon"]
if(cmdstr=="compose")
     {           
           fr_url="<$LINK$>&View=Compose&New=Yes";
     };
if(cmdstr=="index")
     {
           fr_url="<$LINK$>&View=List&Folder=Index";
     };
if(cmdstr=="drafts")
     {
           fr_url="<$LINK$>&View=list&Folder=Drafts";
     };
if(cmdstr=="sent")
     {
           fr_url="<$LINK$>&View=list&Folder=Sent Items";
     };
if(cmdstr=="deleted")
     {
           fr_url="<$LINK$>&View=list&Folder=Deleted Items";
     };
if(logon=="no")
{     
document.write("<frameset rows='0, *' frameborder='0' border='0' framespacing='0' bordercolor='#000000'>");
document.write("<frame name='Menu' src='<$Link$>&View=Menu' scrolling='no' noresize frameborder='0' bordercolor='#000000'>");
document.write("<frame name='Main' src='"+fr_url+"' scrolling='auto' noresize>");
document.write("</frameset>");

fr_url=null;
}
else
{
document.write("<frameset cols='135, *' frameborder='0' border='0' framespacing='0' bordercolor='#000000'>");
    document.write("<frame name='Menu' src='<$Link$>&View=Menu' scrolling='auto' noresize frameborder='0' bordercolor='#000000'>");
    document.write("<frame name='Main' src='<$Link$>&View=<$FRAMEVIEW$>' scrolling='auto' noresize>");
document.write("</frameset>");
 }
</script>
</head>

</html>
 


最前面的代码部分是解释我传入的参数,根据参数指定要显示的页。这样就达到了集成的目的,集成时,我把menu框架的高度设置成了0,相当于把它隐藏了。
现在解释一下logon参数的作用,因为这里我们是集成后显示的,但如果用http://localhost:3000这种方式查看的话就会出现找不到页的情况,所以用logon参数是用来判断的。
OK,就写这些了,其他的页修改的时候找到对应页,去掉css,用面目全飞脚就可以了。


 

贴出一段我修改过的带注释的代码
这是对/MDaemon/WorldClient/Templates/Standard下Options.html的修改

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; CHARSET=<$CharSet$>">
  <link rel="stylesheet" type="text/css" href="<$THEME$>/<$Style$>.css">
  <script type="text/javascript" src="<$THEME$>/globals.js"></script>
     <script type="text/javascript">
     <$IF CGI:Reload$>
             top.frames[0].document.location.reload(true);
     <$ENDIF$>
     function init()
     {
           Mesg('<$ERRORMESG,JS$>');
     }
     </script>

</head>
<body οnlοad="init();">
<p>
           <a class="Options" href="<$Link$>&View=Options-Prefs">[$Personalize$]</a>
           <br />
           [$Customize the appearance and operation of your account.$]
</p><!--个性化设置-->
<p>
           <a class="Options" href="<$Link$>&View=Options-Compose">[$Compose$]</a>
           <br />
           [$Customize the appearance and operation of message composition.$]
</P><!--撰写-->
<!--<$IF MDPRO$>
     <$IF CALISENABLED$>
<p>
           <a class="Options" href="<$Link$>&View=Options-Calendar">[$Calendar$]</a>
           <br />
           [$Customize the operation and settings of your calendar.$]
    
</p>
     <$ENDIF$>
<$ENDIF$>--><!--日程-->
<!--
<$IF WEBADMIN$>
<p>
     <a class="Options" href="<$Link$>&View=WebAdmin" target="_blank">[$MDaemon Settings$]</a>
     <br />
     [$Customize your MDaemon mail account settings.$]
</P>
<$ENDIF$>--><!--MDaemon 设置-->
<p>
     <a class="Options" href="<$Link$>&View=Options-Folders">[$Folders$]</a>
     <br>
     [$Create personal folders to store and manage your messages.$]
</p><!--文件夹-->
<!--
<$IF MULTIPOPSERVERENABLED$> 
<p>
     <a class="Options" href="<$Link$>&View=Options-MultiPOP">[$Mailboxes$]</a>
     <br />
     [$Add external mailboxes that WorldClient should collect mail from.$]
</p>
<$ENDIF$>--><!--其它pop?-->
<!--
<$IF CANEDITFILTERS$>
<p>
     <a class="Options" href="<$Link$>&View=Options-Filters">[$Filters$]</a>
     <br />
     [$Set rules to distribute your incoming messages to specific folders, and/or prevent unwanted mail.$]
</p>
<$ENDIF$>--><!--邮件过滤-->
<!--
<$IF GroupWare$>
<p>
     <a class="Options" href="<$Link$>&View=Groupware">MDaemon GroupWare</a>
     <br />
     [$Share your Outlook calendars, contacts, and more with other users.$]
</p>
<$ENDIF$>--><!--分组?-->
<!--
<$IF COMAGENT$>
<p>
     <a class="Options" href="<$Link$>&View=ComAgent">ComAgent</a>
     <br />
     [$Monitor your mail and sychronize your address book with ComAgent.$]
</p>
<$ENDIF$>--><!--ComAgent -->
</body>
</html>
 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/runxi/archive/2004/07/21/47720.aspx

顶级邮件服务器Alt-N MDaemon v10.1.2 简体中文版+最新破解补丁 详细介绍:世界著名邮件服务系统,支援LDAP的SMTP/POP3/IMAP4邮件服务端软件,可增强IMAP4之功能,以及多域名的支援,透过简易的设定,来建构专属的邮件伺服器,可以在线申请新帐号等,是中小企业架构internet/intranet 的一系列非常有用的邮件服务器软件。 ①安装至选择注册方式,选择输入密钥KEY, ②随便输入一个KEY(3个7位大写组成,中间用-连接), 或打开keygen.exe中生成一个 ELZKCAK-EVXNJFW-SKABRDI FNATFSY-CPBSDWO-AKOKPXX GSYLGBY-SQACKBF-OADEBOB ③安装好MDeamon服务端后,用破解补丁MDeamon.exe替换MDaemon\App下的MDaemon.exe ④重新打开MDeamon, ⑤选择手工激活 ⑥激活码输入任意字符 ⑦OK!重新启动 MDeamon就激活了(测试MDeamon10.1.1.0版本以前均可使用,) ⑴安装SecurityPlus for MDaemon ⑵打开注册码位置替换原输入为 NSNHAII-RIMAXGM-LCQXNPH GXQIEUP-ZKHJVHB-BTYKMUC LMMSBBA-FEZCWZW-RZWOURA ⑶重启打开MDeamon ⑶选择手工激活 ⑷激活码输入任意字符 ⑸OK!重新启动 SecurityPlus就激活了(测试SecurityPlus for MDaemon4.0.2版本以前均可使用,注意最好使用4.0以下版本,4.0以上版本很容易无法连接服务器更新数据库) ㈠安装Outlook Connector for MDaemon ㈡添加插件,根据自己的实际情况添加 ㈢安装完成后,在Outlook Connector for MDaemon注册处更换为以下注册码 ILQMAIE-NMNHAXC-KBMZWIP MPYRFWJ-VHJGUUI-BNPBDXC JZUJFUZ-BXCELMA-TFLTEJZ NVMICAO-HZOXVQY-GIERNNJ ㈣OK!重新启动 Outlook Connector就激活了(测试Outlook Connector for MDaemon2.1.6版本以前均可使用) 整套MDeamon安装完成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值