前段時間簡單的研究了一下.NET操作Lotus Notes郵件的實現,具體的操作包括郵件的讀取和發送,而且都要包含附件,其間參考了《在 Microsoft .NET 應用程式中使用 IBM Lotus Domino》一文,現在把成果和大家分享一下。本文將分為擷取使用者列表、發送郵件、收取郵件三個部分,並會在文末提供範常式序(Visual Studio 2008)的下載。
引用
如果想使用.NET操作Lotus,我們可以使用 Lotus Domino Objects 通過 COM 來訪問 Domino 對象,在 Domino 伺服器或者任何一個 Notes 客戶機(IBM Lotus Domino Designer、Lotus Domino Administrator 或者 Lotus Notes)的安裝中都包括 Lotus Domino Objects。如果你的開發環境複合上述的要求,就可以添加一個COM引用:Lotus Domino Objects,然後:
using Domino;
如果找不到這個COM組件,可以先註冊以下組件,然後就可以找到了:
regsvr32 "C:\Program Files\lotus\notes\nlsxbe.dll"
擷取Notes信箱使用者列表
本段代碼將遍曆使用者視圖(People View)中的所有使用者,將其全名添加到ComboBox控制項中。建立兩個全域變數(全域的目的是供本例中的其它方法使用)。
NotesSession ns;
NotesDatabase ndb;
發送郵件
本段代碼降為從ComboBox中選中的使用者發送一封郵件,我們可以輸入郵件的標題和內容,並可以添加附件。
try
{
if(ns!=null)
{
NotesDocument doc = ndb.CreateDocument();
doc.ReplaceItemValue("Form", "Memo");
//收件者資訊
doc.ReplaceItemValue("SendTo", cb_People.Text);
//郵件主題
doc.ReplaceItemValue("Subject", tb_Subject.Text);
//郵件內文
NotesRichTextItem rt = doc.CreateRichTextItem("Body");
rt.AppendText(tb_Body.Text);
//附件
if (!string.IsNullOrEmpty(tb_Attachment.Text))
{
NotesRichTextItem attachment = doc.CreateRichTextItem("attachment");
attachment.EmbedObject(EMBED_TYPE.EMBED_ATTACHMENT, "", tb_Attachment.Text, "attachment");
}
//發送郵件
object obj = doc.GetItemValue("SendTo");
doc.Send(false,ref obj);
doc = null;
MessageBox.Show("Successfully!");
}
}
catch(Exception ex)
{
MessageBox.Show("Error:" + ex.Message);
}