C# 使用 Lotus notes 公共邮箱发送邮件
2018-02-14 14:01
453 查看
公司的邮件系统用的是反人类的 Lotus notes, 你敢信?
最近要实现一个功能,邮件提醒功能,就是通过自动发送提醒邮件
前前后后这个问题搞了2天,由于公司的诸多条件限制,无法直接调用到公司发送邮件的接口,只有通过类似 Lotus script,VBA 等其他方式来实现。
用VBA代码实现发送邮件,其实我在n年前就实现过了
代码如下,网上一搜也一大堆
View Code
期间还遇到
由于这句代码放置的位置不对,导致显示不正确
doc.AppendItemValue("Principal", "C**********am");//设置邮件的发件人昵称
最终突破的那一刻心情真的很爽,虽然到到现在仍然不知道不要密码的原因,但总归解决了困惑两天的问题,不敢独享
有时候就是听别人说,这条路走不通,就不走了
有时候就是听别人说,已经封装好了,直接调吧,就调了而不知如何实现
有时候就是抄作业,以为自己会了,于是真真用的时候就不知道了
年前终于开始不那么忙了,欠了那么多,该慢慢补回来了
最近要实现一个功能,邮件提醒功能,就是通过自动发送提醒邮件
前前后后这个问题搞了2天,由于公司的诸多条件限制,无法直接调用到公司发送邮件的接口,只有通过类似 Lotus script,VBA 等其他方式来实现。
用VBA代码实现发送邮件,其实我在n年前就实现过了
代码如下,网上一搜也一大堆
/// <summary> /// 通过notes发送邮件 /// </summary> /// <param name="mailTo">实时数据库/lysh</param> /// <returns></returns> public static void SendForNotes2() { string notesPwd = ""; string notesServer = "C****3/**/S***/****"; string NotesDBName = @"****\******.nsf"; string mailTo = "****t**@***.com"; string mailSubject = DateTime.Now.ToString(); string mailBoby = "<html><body><table border='1'><tr><th>Month</th><th>Savings</th></tr><tr><td>January</td><td>$100</td></tr></table></body></html>"; NotesSession ns; NotesDatabase db; NotesDocument doc; try { ns = new NotesSession(); if (ns != null) { //您本机notes的密码 ns.Initialize(notesPwd); //初始化NotesDatabase db = ns.GetDatabase(notesServer, NotesDBName, false); doc = db.CreateDocument(); doc.ReplaceItemValue("Form", "Memo"); doc.ReplaceItemValue("SendTo", mailTo); doc.ReplaceItemValue("Subject", mailSubject.Replace('\r', ' ').Replace('\n', ' ')); doc.SaveMessageOnSend = true; NotesStream HtmlBody = ns.CreateStream(); HtmlBody.WriteText(mailBoby);//构建HTML邮件,可以在头和尾添加公司的logo和系统提醒语 NotesMIMEEntity mine = doc.CreateMIMEEntity("Body");//构建邮件正文 mine.SetContentFromText(HtmlBody, "text/html;charset=UTF-8", Domino.MIME_ENCODING.ENC_IDENTITY_BINARY); doc.AppendItemValue("Principal", "C**********am");//设置邮件的发件人昵称 //发送邮件 object obj = doc.GetItemValue("SendTo"); doc.Send(false, ref obj); doc = null; } } catch (Exception ex) { // Log.CreateLog(ex.Message); } finally { ns = null; db = null; doc = null; } }
View Code
期间还遇到
由于这句代码放置的位置不对,导致显示不正确
doc.AppendItemValue("Principal", "C**********am");//设置邮件的发件人昵称
最终突破的那一刻心情真的很爽,虽然到到现在仍然不知道不要密码的原因,但总归解决了困惑两天的问题,不敢独享
有时候就是听别人说,这条路走不通,就不走了
有时候就是听别人说,已经封装好了,直接调吧,就调了而不知如何实现
有时候就是抄作业,以为自己会了,于是真真用的时候就不知道了
年前终于开始不那么忙了,欠了那么多,该慢慢补回来了
相关文章推荐
- C#中利用Lotus notes公共邮箱发送邮件的方法
- C#发送邮件时提示:“不允许使用邮箱名称。服务器响应为:”的错误解决办法
- 使用支持Pop3的邮箱给好友群发邮件. C# .Net 2.0 邮件发送 + XML 读取操作代码.
- 使用C#邮件发送需要邮箱开通smtp功能
- C#调用ExchangeWebService发送邮件、查询日程、查询用户已使用邮箱空间
- C# 语言中使用Lotus Notes 客户端发送邮件的代码
- C#使用CDO发送邮件
- c#中使用自带的邮件发送组件发送邮件~
- C#使用CDO发送邮件
- C#发送邮件,使用System.Web.Mail的版本
- c#中使用自带的邮件发送组件发送邮件~
- c#中使用自带的邮件发送组件发送邮件的函数
- 使用.net(C#)发送邮件学习手册(带成功案例
- c# 发送邮件发送者邮箱设置成中文
- C#发送邮件,使用System.Net.Mail的版本
- 使用C#发送邮件
- *使用C# 创建邮件发送组件(SMTP)
- C#使用CDO发送邮件
- C#中使用Jmail发送邮件
- 使用C#通过GMAIL发送邮件.