一、术语
OWA :Microsoft OutLook Web Access
AD: Active Directory
OU:AD中的组织单位
二、背景
1、 某办公自动化系统使用OWA作为邮件系统
2、 用户在新建邮件时选择收件人时觉得不方便,查询功能使用不习惯,提出了替换通讯录的需求
三、实现说明
1、 某办公自动化系统后台用户管理系统由统一组织结构管理系统支撑,这个系统中的组织结构与实际行政结构相同,用户登录名称及相关信息与AD同步,AD中的OU与组织结构管理系统中的部门机构有对应关系。同步的信息包括:用户帐户名称、邮件、电话等。
2、 OWA中点击“收件人”、“抄送”等按钮时调用的代码为C:\Program Files\Exchsrvr\exchweb\6.5.6944.0[版本号]\controls\util_OWA.js 中的 openGal 方法,要替换通讯录的话,只需要替换在这个方法中打开window的URL即可。
3、 建立一个.Net WEB应用程序,主要的功能是展示通讯录的内容(具体实现略)
4、 var vRetval = window.showModelessDialog(g_sBase + "?Cmd=dialog&template=dlg_gal&ver=6.5.6944.0" + "&theme="+g_thid, rgParams, "dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;status:no;resizable:yes;help:no;"); 替换成以下语句
window.open("/MyEmailBook","wMyEmailBook" ,"scrollbars=yes,resizable=yes,top="+(screen.availheight-410)/2 + ",left=" +(screen.availwidth-650)/2 + ",width=650,height=410");
5、 OWA之前的代码是通过对象返回选择结果,替换后选择的邮件是通过直接对父窗口的对象赋值来实现,在我们自己的通讯录的发送按钮上添加以下代码:
window.parent.opener.document.all.MsgTo.value=strTo; window.parent.opener.document.all.MsgCc.value=strCc; window.parent.opener.document.all.MsgBcc.value = strBcc;
便可以将选择的email 地址添加在发送邮件的收件人(抄送、密送)栏目里了。