C#中利用Lotus notes公共邮箱发送邮件的方法

2019-12-30 19:37:58丽君

抱着必死的心态小心翼翼的点击了调试

WTF!!!!

居然收到一封有邮件!没有密码啊!不需要密码吗!密码不用也能发送!!!

再试了一次后,发现真的不需要!!!

因为我们每天开机打开notes的时候也不需要输入密码!!!这可能是和本机的ID文件有绑定!!!在毕业后的第一家公司中是需要输入密码的!

于是欣喜若狂

开始修改代码

最终版本


/// <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;
   }
  }

期间还遇到

由于这句代码放置的位置不对,导致显示不正确


doc.AppendItemValue("Principal", "C**********am");//设置邮件的发件人昵称

最终突破的那一刻心情真的很爽,虽然到到现在仍然不知道不要密码的原因,但总归解决了困惑两天的问题,不敢独享