hechengjin 发表于 2015-10-19 19:38:27

同步方案 EAS[exchange activeserver]

本帖最后由 hechengjin 于 2016-4-5 19:50 编辑

1.xmlhttprequest

function downloadCmEnterpriseDirecotry(name, obj){
    var prefBranch = Components.classes["@mozilla.org/preferences-service;1"]
                              .getService(Components.interfaces.nsIPrefService).getBranch(null);
    let request = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.nsISupports);
    let url = prefBranch.getCharPref("cm.enterprise.dir.request");
    //let url = "http://testmail1/service/serviceapi.do?func=serviceapi:corpAddr&sid=lJ8g9RCqKRVRHRLxLrKSRRnUbMlsOhBL000001&r=816cb4fba8de414e9fcd72098e28e8bf";
    request.open("POST", url, true);
    request.overrideMimeType("application/xml");
    request.setRequestHeader("Cache-Control", "no-cache");

    request.addEventListener("error", function(event) {onError_downloadCmEnterprise(event, name, obj); } ,false);
    request.addEventListener("load", function(event) {onLoad_downloadCmEnterprise(event, name, obj); }, false);

    // 格式化函数
    String.prototype.format= function(){
       var args = arguments;
       return this.replace(/\{(\d+)\}/g,function(s,i){
            return args;
       });
    }

      // 解密密码
      let plainPwd = decodePassword(name, obj.password);
      
    try{
      var body = '{"email":"{0}","passwd":"{1}"}'.format(name, plainPwd);

    } catch (e) {
      mm3w.log("downloadCmEnterpriseDirecotry error = " + e);
    }

    request.send(body);
}


function onLoad_downloadCmEnterprise(event, name, obj){
    let aRequest = event.target;
    let json = null;
    try {
      let responseText = aRequest.responseText;
      var json = eval('('+aRequest.responseText+')');
      if (json.code != "S_OK"){
            enableRefresh(obj.menuJson);
            updateloadingEnd(name);
            return;
      }

    } catch (e) {
         mm3w.log("onLoad_downloadCmEnterprise = " + e);
               return;
    }


    mm3w.log("request cm enterprise dir ok!");
    // 保存企业通讯录到本地
    saveEnterpriseDirectoryToLocal(json, name, obj);   
}

2.jquery



hechengjin 发表于 2016-3-27 22:07:38

-------------------Mozilla Thunderbird CardDAV Addon
CardDAV是一种通讯录同步的开放协议。使用 CardDAV 同步的通讯录可以编辑、修改或者删除,并且你在手机上的这些操作也同样会和服务器同步,并同时同步到你的其他设备上。
CardDAV/CalDAV服务 (什么是CardDAV/CalDAV,它又是如何设置?)
-------------
---------------------
---------------
SyncML
------------

Hotmail Calendar only currently supports two-way syncing over EAS (mobile devices, Windows 8) and with Windows Live Mail and Outlook. We don't provide connections over CalDAV or WCAP, the protocols Lightning supports.


------

-------------------------
LDAP
现在市场上有关LDAP的产品已有很多,各大软件公司都在他们的产品中集成了LDAP服务,如Microsoft的ActiveDirectory、Lotus的Domino Directory、IBM的WebSphere中也集成了LDAP服务。LDAP的开源实现是OpenLDAP,它比商业产品一点也不差,而且源码开发。
------------------------

--------Host: i.163.com---------foxmail能同步网易的通讯录------------端口 80---ActiveSync----
POST /Microsoft-Server-ActiveSync?User=hechengjin88&DeviceId=8E7B680BDF4190392477FC9734E76E33&DeviceType=Foxmail&Cmd=Sync HTTP/1.0
Content-Length: 2486
Accept: text/html, */*
User-Agent: Foxmail/7.0
Host: i.163.com
Connection: keep-alive
Content-Type: application/vnd.ms-sync.wbxml
MS-ASProtocolVersion: 12.0
Authorization: Basic aGVjaGVuZ2ppbjg4QDEyNi5jb206cmljaGluZm8yMDE0
..j.E\OK.4..R.Contacts#AllContacts....U.100..W[.1...VGP.Contacts..L.Contact_6..]..[.dd@126.com..^.dddddd.._.ddd..i.ddd..|.iVBORw0KGgoAAAANSUhEUgAAAC4AAAAuCAIAAADY27xgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMTVFRjcxM0FCOEMxMUUyOTc0RUEzODlGOTBDMTIyRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMTVFRjcxNEFCOEMxMUUyOTc0RUEzODlGOTBDMTIyRCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkIxNUVGNzExQUI4QzExRTI5NzRFQTM4OUY5MEMxMjJEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkIxNUVGNzEyQUI4QzExRTI5NzRFQTM4OUY5MEMxMjJEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+XZpTQAAAA1lJREFUeNrsmNtP01AYwHtft65jG2wOkIABBCP6YKL+/SY+adQgiWhiuMxd6LZ27trLOW39tgFBstHTnhPkwS992k7P+fW7f4cPw5B7GCJwD0b+o9wbCvjfhdEeDEex3pKSHeb7AQLB2Pf9mz96CAGB1e0hD799/fL6L1gpSxJLFDi9aZht07LH9t0r83ldkWUA7ZjdWqNVLhU31ivMUJpG++SsHgb+whU8f20h23Y+Hx7bth1OhPOxz8xAYPufJ1X+1pGLmTyE4eGmSQuWKymZmduCkkk55umpmF/qD4YMUEDFjuPE5riiyeraabVRrTVpUTDG1dpFQo6pDAejTscqFQtUvgLBeXj0w3VdykxTKOTK5WUqrZye1S85kqoErJtW1ef7O3zUDhEoHcui4piK7Tg3M2ESFMimYcCmhRiPHSoUUWRWoTClVgRBUNU0ExQoT7QpLp/PsqrVtCil5cJsp3/fryzl9HQ6zd2LRKB4HtIyDFBIIiAi2345OkYeoswrk2MkkUork67MRUyUn1IU2ryiqikGIDyfSim0vlJ5tEIfQZl0micwcQTK+mpZy2YoaXQ9wyCCIOEe7O9oWlKa6SvQwhGZkSQPwpq22YX2tt8fxoumMBQl6c2rFyTBLJC5HV9eKeZ0PYF1yisFwrIqxPnCMK514BvW1yrsB1WY8OJ6CQSgShDGsVEum35iDkmWNzfW2I/v0BEOhmNyDvCvvZ0tSYoxfZIuNa1eGAR3hI/A8wFATDlkRXm6vVnI59jfJMAIcv6rEaELjlMVRZTE7a0NXdf4+BU0AiUIAqPVqdYvIuvzZIL0PM6FRCLyiSr5QpTfvX6j2bJ6fS4IY80fo5GdrMWRbn2Z1e0ZLdPomK7jzX5UUrIiy+Q7No1WJqNmtUxclEnin13IGG2z1bEwmjMliAJU+ZRAOItMPVdRFEjQ5dIyYJGijMb2h09fnSsd3N2JQQfECzxBBnLx1d0OGAuAViulnK5FoLx7/3FsOzEsKolgr0UagmnScWEsnVMinmw+3tvdumvnWBzTOw4fHkHgoOSKAlQ6YebQfhBijGG2XXgTcF5DGB0822VwF/d3kHOBhxGHY71VqxuyLEMWpq1BTOT0rAYh9iBQQL59P0FoziDxR4ABAH7dltbCII8dAAAAAElFTkSuQmCC........HTTP/1.1 200 OK
Server: nginx
Date: Thu, 22 Jan 2015 10:58:58 GMT
Content-Type: application/vnd.ms-sync.wbxml
Connection: close
X-Date: Thu, 22 Jan 2015 10:58:58 GMT
..j.EN.1..\OP.Contacts..K.5..R.Contacts#AllContacts..N.1..FGL.Contact_6..M.36950959482771583q..N.1.......

--------Host:ex.qq.com---------foxmail能同步QQ的通讯录------------端口 80---ActiveSync----





zindus-0.8.41-tb+sm+pb+sb.xpi
http://www.zindus.com/faq-thunderbird/

exquilla_for_microsoft_exchange-31.0.1136-tb-windows.xpi

Sync Google contacts with Thunderbird using CardDav
http://www.ghacks.net/2012/12/15 ... bird-using-carddav/


什麼是Exchange Web Services Managed API
http://www.dotblogs.com.tw/wadehuang36/archive/2012/07/04/ews-first.aspx
Exchange Web Services Managed API(以下簡稱 EWS)是微軟提供 .Net Framework 版本,存取 Exchange Server 的API,Outlook 有的資料都可以用 EWS 存取,所以用 EWS 打迼自己的 Outlook 也是可能的,以下是 EWS 提供的功能:
[*]Availability
[*]Bulk Transfer (new in Exchange 2010)
[*]Conversations (new in Exchange 2010)
[*]Delegate Management
[*]Exchange Store Search
[*]Exchange Search (new in Exchange 2010)
[*]Federated Sharing (new in Exchange 2010)
[*]Folder
[*]Inbox Rules (new in Exchange 2010)
[*]Item
[*]Mail Tips (new in Exchange 2010)
[*]Messaging Records Management
[*]Message Tracking (new in Exchange 2010)
[*]Notification
[*]Service Configuration (new in Exchange 2010)
[*]Synchronization
[*]Unified Messaging (new in Exchange 2010)
[*]User Configuration (new in Exchange 2010)
[*]Utility
[*]Autodiscover service

可存取的類型有:
[*]email
[*]meetings
[*]tasks
[*]notes
[*]docs
[*]journals
[*]contacts
[*]im
為什麼叫Web Services Managed API 呢?因為 Exchange Server 也有提供SOAP+XML的Web Services 給所有的語言使用(如: JAVA、Python 等等),而 Web Services Managed API 就是 Web Services 使用 .Net Framework 再包裝過 ,跟使用 Visual Studio 的 Web 參考所產生的 Proxy 完全不一樣(Proxy 產生的超難用),如果你想要直接使用 SOPA+XML 存取 EWS,可以使用下例網址取得定義與XML Schema。
[*]http://server/EWS/Services.wsdl   EWS 的Web服務描述語言,可以用來產生 Proxy
[*]http://server/EWS/Messages.xsd
[*]http://server/EWS/Types.xsd
而連線網址使用 http://server/EWS/Exchange.asmx 。


页: [1]
查看完整版本: 同步方案 EAS[exchange activeserver]