前段時間簡單的研究了一下.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);
}