其实网上已经很多了,不过我还是记下来吧,当做自己的笔记也好。
刚开始的时候,真的都不知道怎么配置那几个参数,不过想要了解这些,必须多Lotus notes有一定的了解。好了,废话不多说了,开始进入正题。
1、如果想使用.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;命名空间。
参考网站:http://www.cnblogs.com/xiaoshatian/archive/2008/06/17/1223439.html
2、开始上代码
private NotesSession ns; private NotesDatabase ndb; ns.Initialize(password); //密码,本机的notesClient对应的ID文件的密码
if (!ndb.IsOpen)ndb = ns.GetDatabase(@ServerName, @MailFile, false); //ServerName表示Notes服务器的地址。MailFile指mail数据库(.nsf文件)一般的都在服务器上。
{
ndb.Open();
}
3、都配置好了,连接成功了,就可以发送邮件了NotesDocument doc = ndb.CreateDocument();
发送邮件主要就是这些代码,不过我在客户那边测试的时候,老是报错,:说是尝试读取或写入受保护的内存,这通常是其他内存已损坏,不知道什么问题,不过网上还看到一种方法添加邮件的正文,代码如下:NotesDocument doc = ndb.CreateDocument(); doc.ReplaceItemValue("Form", "Memo"); //发件人信息 doc.ReplaceItemValue("From", "jack zhang"); //收件人信息 doc.ReplaceItemValue("SendTo", txtReceiver3.Text.Trim()); WriteLog.Log("添加收件人信息,成功!"); //抄送 if (txtCC3.Text.Trim() != "") { doc.ReplaceItemValue("CopyTo", txtCC3.Text.Trim()); } //邮件主题 doc.ReplaceItemValue("Subject", txtSubject3.Text.Trim()); WriteLog.Log("添加邮件主题,成功!"); if (!string.IsNullOrEmpty(txtContent3.Text)) { //邮件正文 NotesRichTextItem rt = doc.CreateRichTextItem("Body"); WriteLog.Log("创建邮件正文的对象,成功!"); rt.AppendText((String)txtContent3.Text.ToString()); WriteLog.Log("添加邮件正文,成功!"); } if (!string.IsNullOrEmpty(txtAttch.Text)) { //邮件附件 NotesRichTextItem attachment = doc.CreateRichTextItem("attachment"); WriteLog.Log("创建邮件附件的对象,成功!"); attachment.EmbedObject(EMBED_TYPE.EMBED_ATTACHMENT, "", txtAttch.Text, "attachment"); WriteLog.Log("添加邮件附件,成功!"); } //发送邮件 object obj = doc.GetItemValue("SendTo"); doc.Send(false, ref obj); doc = null;
NotesDocument doc = ndb.CreateDocument();
doc.AppendItemValue("SendTo", txtReceiver4.Text.Trim());
WriteLog.Log("添加收件人,成功!");
if (txtCC4.Text.Trim() != "")
{
doc.AppendItemValue("CopyTo", txtCC4.Text.Trim());
WriteLog.Log("添加抄送人,成功!");
}
doc.AppendItemValue("Subject", txtSubject4.Text);
WriteLog.Log("添加邮件主题,成功!");
doc.AppendItemValue("From", "memo");
string psenddate = System.DateTime.Now.ToString("yyyy/MM/dd");
doc.ReplaceItemValue("SendDate", psenddate);
ns.ConvertMime = false;
Domino.NotesMIMEEntity bodyHtml = doc.CreateMIMEEntity("Body");
Domino.NotesStream notesStream = ns.CreateStream();
notesStream.WriteText(txtContent4.Text, Domino.EOL_TYPE.EOL_NONE);
bodyHtml.SetContentFromText(notesStream, "text/html, charset=UIF-8", Domino.MIME_ENCODING.ENC_IDENTITY_BINARY);
notesStream.Truncate();
notesStream.Close();
doc.CloseMIMEEntities(true, "Body");
ns.ConvertMime = true;
doc.ComputeWithForm(false, false);
object MailTo = txtReceiver4.Text.Trim();
doc.Send(false, ref MailTo);
在本机上测试,也可以发送邮件成功的。通过这次的学习,还是了解了很多知识吧。
再加上一个学习网站,IBM notes的API
http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp