彩巴巴彩票官网|91彩客彩票官网
歡迎來到學術參考發表網

淺析WEB方式進行Notes新郵件接收

發布時間:2015-11-30 10:39

摘 要:進行Domino數據庫研究開發的目的,就是實現與企業應用相結合,讓用戶更方便快捷地了解數據庫中尚未處理的郵件數量及內容,在企業內部網站上有所反映,從而提高工作效率。

關鍵詞:WEB方式;ASP組件;新郵件接收
  Lotus Domino系統在國內企事業單位辦公自動化系統中應用較為廣泛,Domino是比較獨特和封閉的非關系數據庫管理系統。通過Notes客戶端可以實現安全方便的收發郵件,然而Lotus Notes身身是一種C/S模式程序,在強調系統安全性的同時,也給系統管理員和用戶帶來了諸多安裝、管理、使用上的不便。當下郵件、公文系統使用WEB方式已成事實,本文就ASP開發環境下的Notes新郵件接收作以淺析,供初學者交流參考。
  1、了解Notes/Domino工具包
  我們需要首先了解用何方法從外部獲得Domino/Notes系統中的數據和對象,Lotus提供的接口和工具什么樣。我們可以從IBM公司得到豐富的Notes/Domino的工具包。
* Lotus C API toolkit
* Lotus C++ API toolkit
* Lotus Domino Toolkit for Java/CORBA
* Lotus and Notes Toolkit for COM
* Lotus Domino Driver for JDBC (簡稱LDDJ)
* NotesSQL
* Lotus XML Toolkit(簡稱DXL)
* Custom Tag Converion kit(簡稱DCT)
* LotusScript Extensions toolkit(簡稱LSX)
  在Domino/Notes的Toolkit中,C/C++的功能最為強大,能充分利用Domino/Notes已有功能,修改數據庫設計,并實現Domino/Notes的能力擴展,對數據的處理能力也最高。從未來Domino技術發展趨勢看,IBM公司在Domino/Notes和J2EE平臺的結合方面做了大量工作,使用Java/CORBA工具包,用戶不必安裝Notes客戶端就可訪問Domino數據庫中的絕大部分數據,但Java應用數據處理的速度不快,對Notes數據對象的操縱能力與C/C++工具相比差距較大。  
2、實現新郵件接收
  2.1通過Domino代理寫入網關數據庫,前臺程序比如ASP程序通過數據庫接口訪問數據庫,從而得到新郵件數目。
 2.2通過Toolkit工具統計新郵件數目,其中用CAPI實現功能較為強大,基本可以操作Notes數據庫中所有的數據對象(包括數據庫及ACL、文檔和域、表單、視圖、文件夾、代理) ,再通過ASP程序使用注冊的ATL COM組件來獲得Notes的未讀文檔數。
 3、做好準備工作
  我們準備用CAPI新建ATL COM工程來讀出Notes未讀郵件和總郵件數,開發工具準備選用Visual C++ 7.0,Lotus CAPI的應用可以根據notes.ini中的信息獲得當前用戶信息,根據查找到的ID文件驗證用戶身份。Notes的絕大部分API都封裝在nNotes.dll文件中,其中包括有ACL, User,Database,Document,Item等多方面的API函數。
我們可以在IBM公司網站下載Domino對應版本CAPI,解壓到相應目錄例如c:notesapi下,本文以Domino5.08為例,打開目錄可以看到Include目錄和Lib目錄,設置好系統變量包括系統路徑。
  4、整理編程思路
  我們要整理好自己的編程思路,先打開VC++7.0,新建Visual C++項目ATL項目類型,模板選擇ATL項目,可取名dmnew,設置好項目屬性,添加notes.lib,設置項目VC++項目,CAPI包含文件目錄和庫文件目錄,在項目向導下的服務器類型里選擇動態鏈接庫(DLL),并添加ATL Active Server Page組件類,可取名newmail,其它屬性均選擇默認值,在自動生成的Idmnew 接口添加方法getnew()
    { iViewUnread++;
    break;
    }
  }
  OSUnlockObject(hBuffer);
  OSMemFree(hBuffer);
  }

DLL文件中引用m_piResponse對象在ASP頁面顯示總郵件數目和新郵件數目。
  VariantInit(&varText);
  varText.vt =  VT_I4;
        varText.lVal =NotesFound ;
m_piResponse->Write(CComVariant(L""共有郵件""));
  m_piResponse->Write(varText);
  m_piResponse->Write(CComVariant(L""封""))

  varText.lVal =iVi ewUnread;
m_piResponse->Write(CComVariant(L""其中有""));
  m_piResponse->Write(varText);
  m_piResponse->Write(CComVariant(L""封新郵件""));
 
  在ASP文件中調用已注冊的ATL DLL文件。
  dim test
  dim retval
  set test=Server.CreateObject(""dmnew.newmail"")
  retval=test.getnew(""notes文件名"",""notes密碼"")
  5、總結涉及問題
  5.1中文處理問題
  Domino涉及到中文部分需要處理,每個中文字符前面需加0x13,GB2312編碼大約包含6000多漢字(不包括特殊字符),編碼范圍為第一位b0-f7,第二位編碼范圍為a1-fe,用以下函數進行處理:
void hangzi_zhuan(char *src,char *des)
{  unsigned char highchar;
  unsigned char lowchar;
  int l;
  int k;
  int m;
  l=WORD(strlen(src));
 
for(k= 0,m=0;k<=l;k++,m++)
{
  lowchar =( unsigned char)( srcLotus C API 5.0.8 User Guide

學術參考網:http://www.qfkih.com.cn/jsj/js/142095.html

上一篇:光纖反射內存網在半實物仿真系統中的應用

下一篇:深入探討計算機網絡技術在建筑企業中的應用

相關標簽:
彩巴巴彩票官网 21游戏的必胜秘诀 本期七星彩开奖结果 四川时时高手群 北京pk10选号码技巧 重庆彩开奖号码查询 北京pk10计划微信群 速pk10软件 大乐透中奖规则表说明 幸运飞艇全天6码两期计划 极速时时彩计划软件下载 红马计划软件苹果手机版 万人炸金花官方下载 澳客竞彩 广东时时走势图百度百度贴吧 七乐彩平台下载 时时彩6注必出后二