What are CDO, Simple MAPI, and Extended MAPI ?

วันนี้ผม..นั่งสารวนอยู่กับ MAPI ทั้งวัน อันเนื่องมาจาก ไอ้เจ้า BES (Blackbery Enterprise Server) มันไม่สามารถ synchronize กับ Exchange 2007 ได้ เด้งมาฟ้องต้อน Start Program Blackberry Manager ทั้งวัน ทำให้ไม่สามารถรับส่ง mail ได้ ปัญหาก็น่าจะเกิดจากไอ้เจ้า MAPI นี่แหละ ก็เลยลองมาหาข้อมูลดูว่า ไอ้ MAPณ นี้มันเอาไว้ใช้ทำไรหว่า และแล้วก็มาเจอที่

http://support.microsoft.com/?kbid=200018

มาเริมกันเลยดีกว่าครับ

  1. CDO : Collaboration Data Objectคือ การติดต่อข้อมูลแบบ Object (แปลมันตรงตัวนี่แหละ) สมัยก่อนจะเรียกมันว่า OLE Messaging ต่อมาก็เรียกว่า Active Messaging ไอ้เจ้า CDO เนี้ยมันเป็น Component ที่ถูกห่อหุ้มด้วย MAPI Library บางตัวเพื่อช่วยให้นักพัฒนาสามารถเรียกใช้ Function ต่างๆได้ง่าย ขึ้น แน่นอนว่า Function ต่างๆ นั้นสู้ไอ้เจ้า MAPI ไม่ได้อยู่แล้ว แต่มันก็ยังมี function เยอะกว่าเข้า Simple MAPI เหมือนกัน ตัวอย่างที่เค้าเอาไอ้ CDO ไปใช้
    1. ใช้เป็นตัว Authenticate เข้าไปใช้งานในระบบ message โดยจะเข้าไป Authenticate แบบพิเศษหรือแบบธรรมดาก็ได้
    2. ใช้เป็นตัวอ่าน, เขียน, ส่ง email พร้อมทั้ง สามารถแนบไฟล์ต่างๆได้
    3. Manage calendars; create meetings and appointments. ใช้เป็นตัวจัดการปฏิทิน สร้างและกำหนดวันประชุมต่างๆ
    4. จัดการ Folder และ ข้อความต่างๆ ใน email ส่วนตัวของเรา
    5. สามารถจัดการกับ Address ต่างๆ ภายใน Personal Address Book (PAB) ได้

    สิ่งที่แตกต่างที่เห็นได้ชัดคือ CDO ถ้าต้องการติดต่อด้วย MAPI จะต้องอยู่บน CDO.dll แต่ถ้าต้องการติดต่อด้วย SMTP นั้นก็จะอยู่บน CDONTS.dll โดย CDODTS.dll นั้นจะสามารถให้เราดึงข้อมูลออกมาเป็นรูปแบบ HTML ได้ แฮะๆ คุณสามารถ ศึกษา การใช้งานต่างๆของ CDO.dll และ CDNTS.dll ได้ที่

      CDN.dll : http://support.microsoft.com/kb/171440/EN-US/
      CDNTS.dll : http://support.microsoft.com/kb/186204/EN-US/ และ http://support.microsoft.com/kb/177850/EN-US/
  2. MAPI : The Messaging Application Program Interfaceคือ กลุ่มของ Function ที่นัก Developer สามารถที่จะนำ Function เหล่านี้ไปใช้ในการสร้างโปรแกรมต่างๆ สำหรับ Email Client ต่างๆได้ซึ่ง Email Client เหล่านี้ก็จะสามารถที่จะ Manage ไม่ว่าจะเป็น การสร้าง message การ management mailbox ของ Client แต่ละ user ได้ ซึ่ง Application ต่างๆนั้นสามารถใช้เรียกใช้งานได้โดยการเขียนด้วยภาษา C/C++
  3. Simple MAPIคือกลุ่ม Function ย่อยๆ ที่อยู่ใน MAPI ซึ่งมีทั้งหมด 12 Function เพื่อให้นักพัฒนาสามารถที่จะใช้งาน บน Windows-Base Application ได้ ซึ่ง Simple MAPI นั้นก็จะมี Function หลักๆดังนี้
    1. Log on เข้าสู่ระบบ Message ได้
    2. เขียน&ส่ง message เพิ่มและแยกแยะ user ได้
    3. กู้และอ่าน message จาก inbox ได้

    Simple MAPI นั้นสามารถเรียกได้โดย Application ซึ่ง Support ทั้งการสร้าง API ให้สามารถเรียกใช้งานโดยรูปแบบที่เป็น Structure และ Data-Type เช่น C/C++ , Visual Basic and Visual Basic for Application (VBA).

    MAPI นั้นจะถูกติดมาด้วยกับ Microsoft Visual Basic (V3, 6) และ Simple MAPI นั้นจะถูกติดตั้งเฉพาะ Outlook Express เท่านั้น

    ท่านสามารถศึกษาข้อมูลต่อได้ที่

    -> PC MAPI: Simple MAPI Common Technical Questions and Answer

    -> INFO: Developer Support Limitations with Outlook Express

  4. CMC : Common Messaging Calls คือ Library ที่ประกอบ 10 Function สำหรับการเรียกใช้งาน Message System พื้นฐานต่างๆได้ แต่สิ่งที่เป็นจุดเด่นก็คือไอ้เจ้า CMC เป็น API ที่สามารถใช้งานได้โดยไม่ขึ้นอยู่กับ OS หรือพูดง่ายๆ มันสามารถทำงานหรือเรียกใช้งานแบบ Cross-Platform ได้ ซึ่ง CMC นั้นจะรองรับ X.400 API (ไม่รู้จักครับว่ามันคืออะไร ไปหาอ่านเอาเองนะ..แฮะๆ) CMC นั้น support หลักๆอยู่ 3 ส่วนคือ
    1. การส่ง message
    2. การกู้ message
    3. เข้าไปดูไปอ่านข้อมูล address ต่างๆได้

    ปัจจุบันนี้ MAPI นั้นจะไม่ implement CMC มาด้วย(ไม่ได้ใส่มาด้วยนั่นเอง..อยากใช้ไปหามาใช้เองว่างั้นเหอะ อิๆ)