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

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

[经验] MDaemon与OA集成,技术实现原理

[复制链接]
跳转到指定楼层
顶楼
发表于 2008-10-16 16:58:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我从04年开始做MDaemon和oa集成,开始是使用asp,05年改.net,这里是我集成的思路方式。

我的做法是,第一次进入邮件系统时使用javascript模拟提交动作登录,将登录时间写入Cookies,登录后进入收件箱,使用javascript脚本将地址栏的SESSION值传给.net,.net将地址栏的SESSION值与当前时间(覆盖登录时间,为得到最后一次访问邮件系统的时间)写入Cookies,Cookies是加密的,读取、写入的过程都由.net进行加密解密。

第二次再进入时就不再需要做登录了,通过.net做一个检查,从Cookies内获得上次访问时间是否操作20分钟,如果超过再重复第一步javascript模拟提交动作登录,未超过的话从Cookies内读取SESSION值,直接跳转(如:WorldClient.dll?Session=BDNQQGV&View=List&NoKeepAlive=Yes),即可直接到达收件箱。

模拟提交登录的过程用户是感觉不到的,完全在后台完成,这么做主要是防止明文传递密码,登录过程即完成了。

剩下的是获取最新的邮件数量,这个是比较头痛的问题,我找遍MDaemon文档与他的在线讨论区都没有得到解答,本想从他的用户目录中的基本配置文件或的新邮件数,但他的加密格式我不知道是什么,毕竟我不是搞解密的,最后放弃从用户目录配置文件获得新邮件数,最后使用一个比较简单的方法,也是不得已而为之,写了一个IMAP服务,放在服务器,定时获取用户新邮件数,然后写入sql,OA定时AJAX刷新页面显示有多少新邮件。

关于用户集成,我使用的是SQL,所以都是直接操作SQL来完成,没有什么技术难度,只要搞清楚每个字段是干嘛用的就可以了。

本文是我集成的一些思路,同道人士多多交流,进一步完善oa集成。

写一个题外话,看到Exchange Server讨论区帖量,我知道使用Exchange Server的人还是很多的,再加上我使用windows mobile手机,想搞push mail,一直有冲动想换掉邮件系统,但OWA得界面实在无法与我们的OA集成,正考虑是否找时间重写他的OWA实现与OA界面集成,要不只能等MDaemon的SyncML完善,移动、电信手机上网费用下调了。

[ 本帖最后由 ntosss 于 2008-10-16 17:14 编辑 ]
沙发
发表于 2008-10-16 20:03:48 | 只看该作者
好思路,javascript模拟登录实现这个办法非常好,模拟登录也主要为了获取登录SESSION的值,但是javascript模拟提交的username和password应该还是明文,只是不在url里显示,直接通过javascript做提交动作;
获取最新的邮件数量我的思路:我想是在邮件服务器端用Com写一个邮件列表页面(asp、aspx),接受url,结合IMDUser、IMDUserInfo、MDListClass这些类完成新邮件的读取,输出document.write格式,在有OA调用,但苦于com没用详细的文档,只能是自己不断尝试来实现
藤椅
发表于 2008-10-16 21:07:21 | 只看该作者
一、获取邮件这步做的有些罗嗦,我之前写了个list页面,你可以去看看
二、模拟登录也是明文验证,之前我也说过,这个除非官方提供认证接口,否则无法从根本上解决
板凳
 楼主| 发表于 2008-10-17 08:43:38 | 只看该作者
像Lwz_08说的,除非官方提供认证接口,否则无法从根本上解决,javascript模拟登录也是折中的一个办法,不让密码在URL传递。登录页控件是隐藏的,动态从后台读取用户名、密码,javascript执行提交动作,完成页面就跳转走了,这个过程非常快,基本察觉不到这个页的存在,也是相对的安全解决方案吧。

关于从list页获取新邮件数量,我初初也是这么考虑的,因为邮件系统我只是做最最基本的收发,其他的功能一律屏蔽掉了,包括通讯录都重写了,其他的功能都在OA中实现,方便集成,如果从list页获取新邮件数,需要保持一个长连接进程在邮件系统,造成邮件系统进程耗费,如果人一多可想而知,所以我才写了一个IMAP服务在服务器端定时获取,这个获取速度是非常快的,IMAP连接获取后写入SQL直接就关闭进程,减少邮件服务器的压力。

注:我的OA与邮件服务器端是分别在两台服务器上的,减轻各自服务的压力与异常时好处理。同时也带来了开发上的难度。

[ 本帖最后由 ntosss 于 2008-10-17 08:58 编辑 ]
报纸
发表于 2008-10-17 10:39:24 | 只看该作者
获取新邮件的这步倒不是说必须保持一个长连接,而是session来传递的

我这边最棘手问题在于MD的密码保存是明文的,而OA密码又是加密的,最终形成了两套帐户和密码
很郁闷...
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

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

GMT+8, 2026-8-6 04:11

Powered by Discuz! X3.2

© 2001-2016 Comsenz Inc.

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

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