.net通过Lotus notes发送邮件

 

其实网上已经很多了,不过我还是记下来吧,当做自己的笔记也好。

刚开始的时候,真的都不知道怎么配置那几个参数,不过想要了解这些,必须多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文件的密码
ndb = ns.GetDatabase(@ServerName, @MailFile, false);  //ServerName表示Notes服务器的地址。MailFile指mail数据库(.nsf文件)一般的都在服务器上。
if (!ndb.IsOpen)  

 {  
   ndb.Open();  
 }
NotesDocument doc = ndb.CreateDocument();
3、都配置好了,连接成功了,就可以发送邮件了

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值