ORF反垃圾邮件系统

邮件服务器-邮件系统-邮件技术论坛(BBS)

 找回密码
 会员注册
查看: 4073|回复: 5
打印 上一主题 下一主题

用Imail架设类似163的个人邮件服务器的解决方案

[复制链接]
跳转到指定楼层
顶楼
发表于 2005-10-17 21:35:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<font color="red">首先、如果你没有服务器,并且你没有太大兴趣的话可以不用浪费时间往下看!其次、如果你有钱,就让鬼帮你来看,也不用浪费你的时间。再次、如果你并不想架什么邮局也别浪费时间看。</font><br>
<br>
<br>
<b>用Imail架设类似163的个人邮件服务器的解决方案</b><br>
<br>
如今是一个互联网的时代,已经越来越多个人或公司都购买了属于自己的服务器托管到各种机房去,或提供公司内部使用的WEB或邮件服务,或从事虚拟主机服务行业,笔者瞎赶潮流弄了一台玩。<br>
<br>
反正服务器闲着也是闲着,就打算开一个免费邮局,要钱的邮件服务器咱买不起,IMAIL口碑算是不花钱的邮件服务器中非常不错的,就选它吧。看着IMAIL的WEBMAIL实在不咱地,就自己写了一套界面模板,居然还卖了几个小钱,暗自欣喜,不过问题又来WEBMAIL不提供在线注册功能啊!<br>
<br>
于是上网找资料,看到有别人提供在线注册模块的文章,于是研究了一下,就用ASP写了一个在线注册模块(代码附后),不过很不爽的是,这种在线注册模块必须要求数据库要使用外部数据库,例如SQLSERVER/ACCESS,提到这里相信大家都明白为什么我轻松就写出了在线注册模块,其实不就是网数据库里插记录吗?用ASP小意思了嘛!<br>
<br>
一次偶然机会,有一个用户问我,为什么我们提供的在线注册模块只能用外部数据库,一则安全问题不能保障,一则速度受到极大影响,问我们能否提供使用IMAIL系统数据库(即注册表)也能支持在线注册的功能。<br>
<br>
于是萌发了开发一个基于系统数据库的在线注册组件。<br>
<br>
由于目前还没有这种先例,作为首创,我在开发过程中遇到许许多多问题,首先就是组件操作注册表问题,然后就是IMAIL用户密码的加密解密问题,最后是服务器执行权限及配置……经过半个月多的努力,总算把这个在线注册组件完成了——Tuoboo Imail Register<br>
<br>
我终于如愿以尝地用IMAIL架设了一个个人免费邮局,供大家免费申请使用。即时申请、立刻开通使用。<br>
<br>
软件:Imail 8.21 + Tuoboo Imail Register + 2003server<br>
<br>
附数据库版ASP在线注册组件代码<br>
<br>
<%<br>
dim conn<br>
dim Max,Min,userfield,userdir,usertable<br>
Max = 0<br>
Min = 0<br>
userfield = "@tuoboo.net"<br>
userdir = "c:\Program Files\Ipswitch\Collaboration Suite\IMail\tuoboo_com\users\"<br>
usertable = "ImailUser"<br>
if request.form("post") = "立刻注册" then<br>
dim userid,password<br>
if request.form("accept") <> "ON" then<br>response.write "<script>alert('您必须无条件接受我们的服务条款才被允许免费申请企业信箱!');history.go(-1);</script>"<br>response.end<br>
end if<br>
userid = trim(replace(request.form("userid"),"'",""))<br>
password = trim(replace(request.form("passwd"),"'",""))<br>
if len(userid) > 16 or len(userid)<3 then<br>response.write "<script>alert('帐号长度范围是3-16!');history.go(-1);</script>"<br>response.end<br>
end if<br>
if len(password) > 16 or len(password)<3 then<br>response.write "<script>alert('密码长度范围是3-16!');history.go(-1);</script>"<br>response.end<br>
end if<br>
if password <> trim(request.form("passwdd")) then<br>response.write "<script>alert('两次输入密码不一致!');history.go(-1);</script>"<br>response.end<br>
end if<br>
Set Conn = Server.CreateObject ("ADODB.Connection")<br>
Conn.Open "ImailDb"<br>
RegisterNewUser<br>
conn.close<br>
end if<br>
Sub RegisterNewUser()<br>
err.clear<br>
conn.begintrans<br>
set rs = conn.execute("select userid from "&usertable&" where userid = '"&userid&"'")<br>
if not rs.eof and not rs.bof then<br>response.write "<script>alert('此用户已经被注册!请更换一个帐号注册!');history.go(-1);</script>"<br>exit sub<br>
end if<br>
set rs=server.CreateObject("adodb.recordset")<br>
sql = "select * from "&usertable&" where (userid is null)"<br>
rs.open sql,conn,1,3<br>
rs.addnew<br>
rs("USERID") = userid<br>
rs("PASSWORD") = password<br>
rs("FULLNAME") = userid<br>
rs("USERDIR") = userdir&userid<br>
rs("MAILADDR") = userid&userfield <br>
rs("MAXSIZE") = Max '- integer..............最大邮件大小 <br>
rs("MAXMSGS") = Min '- integer..............最大消息大小 <br>
rs("FLAGS") = 128 '- integer <br>
rs("TYPE") = 0 '- integer <br>
rs("NUMTRIES") = 0 '- integer <br>
rs("ATTEMPTTIME") = 0 '- integer <br>
rs("NUMTIMESSUSP") = 0 '- integer <br>
rs("LASTLOGIN") = 0 '- integer <br>
rs("SPNDUSRACCT") = 0 '- integer <br>
rs("ICALENBL") = -1'- integer <br>
rs("SPELLENBL") = -1 '- integer <br>
rs("NUMSGSTNS") = 4 '- integer <br>
rs("IWDEPTH") = -1'- integer <br>
rs("IWOPTIONS") = 0' - integer <br>
rs("SPELLCHKG") = -1' - integer <br>
rs("PRVWSIZE") = -1' - integer <br>
rs("STRTDAY") = -1' - integer <br>
rs("ENTRYGRNL") = -1' - integer <br>
rs("STARTTIME") = -1' - integer <br>
rs("ENDTIME") = -1' - integer <br>
rs("MAXEVNTDISP") = -1' - integer <br>
rs("MAXTSKDISP") = -1' - integer <br>
rs("MAXNOTEDISP") = -1' - integer <br>
rs("MAXDLYRCURCNT") = -1' - integer <br>
rs("MAXWKLYRCURCNT") = -1' - integer <br>
rs("MAXMONRCURCNT") = -1' - integer <br>
rs("MAXYRLYRCURCNT") = -1' - integer <br>
rs("DISPCMPLTDTSKS") = -1' - integer <br>
rs("HOURSCLOCK") = -1' - integer <br>
rs("MAXSRCHRESPPG") = -1' - integer <br>
rs("MAXEVENTTITLELEN") = -1' - integer <br>
rs("MAXTASKTITLELEN") = 0' - integer <br>
rs("CONFIRMONDELETE") = 0' - integer <br>
rs.update<br>
rs.close<br>
set rs = nothing<br>
if err.number <> 0 then<br>conn.rollbacktrans<br>response.write "<script>alert('意外错误,操作未能成功!');history.go(-1)</script>"<br>
else<br>conn.committrans<br>response.Write "<script>alert('您已成功申请信箱["&userid&userfield&"]!');document.location.href='<a target=_blank href=http://www.tuoboo.com'>http://www.tuoboo.com'</a>;</script>"<br>
end if<br>
End sub<br>
%>
沙发
 楼主| 发表于 2005-10-17 21:37:30 | 只看该作者

re:如果想使用IMAIL系统数据库的在线注册...

如果想使用IMAIL系统数据库的在线注册组件可以搜索<br>
“Tuoboo Imail Register”<br>
各大下载站都能够下载到
藤椅
发表于 2005-10-17 22:55:25 | 只看该作者

re:广告贴子搞成样也算是花了时间。保留着先。...

广告贴子搞成样也算是花了时间。保留着先。其实关于注册Imail早已有相关的免费组件。
板凳
 楼主| 发表于 2005-10-19 23:19:54 | 只看该作者

re:哦,早知道有免费组件偶们也就懒得花时间写...

哦,早知道有免费组件偶们也就懒得花时间写了<br>
怎么没有人推荐推荐呢?<br>
真是浪费资源<br>
斑竹,能指点指点是那里能下载到吗,也想下来看看,学习学习!<br>
你要说是广告帖就删除吧
报纸
发表于 2005-10-20 00:47:11 | 只看该作者

re:EZSignUp这个插件,用户可以利用...

EZSignUp这个插件,用户可以利用 asp 集成 IMail 服务器的命令行工具 非常方面实现在网上注册新的用户的功能,你可以到官方网站找找。
地板
 楼主| 发表于 2005-10-20 22:01:24 | 只看该作者

re:不知道为什么,官方这个组件注册用户总是不...

不知道为什么,官方这个组件注册用户总是不成功,明明没有被注册帐好也说用户已经被注册了<br>
<br>
难道说没有给银子的原因?<br>
<br>
看样子我们写这个组件也是有价值的,下一步我们将会提供在线注册别名功能。<br>
<br>
相信大部分朋友都没有使用过IMAIL的别名功能吧,其实,这是一个非常有特色的功能,真正的好处待下回跟大家分享。
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

小黑屋|手机版|Archiver|邮件技术资讯网

GMT+8, 2024-11-18 23:46

Powered by Discuz! X3.2

© 2001-2016 Comsenz Inc.

本论坛为非盈利中立机构,所有言论属发表者个人意见,不代表本论坛立场。内容所涉及版权和法律相关事宜请参考各自所有者的条款。
如认定侵犯了您权利,请联系我们。本论坛原创内容请联系后再行转载并务必保留我站信息。此声明修改不另行通知,保留最终解释权。
*本论坛会员专属QQ群:邮件技术资讯网会员QQ群
*本论坛会员备用QQ群:邮件技术资讯网备用群

快速回复 返回顶部 返回列表