/// <summary> /// Lotus Send E-Mail /// </summary> /// <param name="sendTo"></param> /// <param name="copyTo"></param> /// <param name="subject"></param> /// <param name="content"></param> /// Owner:Andy Gao 2011-08-22 09:32:50 public static void LotusSendEMail(string[] sendTo, string[] copyTo, string subject, string content) { NotesSession ns = new NotesSession(); ns.Initialize(lotusPassword); NotesDatabase ndb = ns.GetDatabase(lotusServer, lotusFile, false); NotesDocument doc = ndb.CreateDocument(); doc.ReplaceItemValue(LOTUS_SENDTO, sendTo); doc.ReplaceItemValue(LOTUS_COPYTO, copyTo); doc.ReplaceItemValue(LOTUS_SUBJECT, subject); NotesRichTextItem rti = doc.CreateRichTextItem(LOTUS_BODY); rti.AppendText(content); object recipients = doc.GetItemValue(LOTUS_SENDTO); doc.Send(false, ref recipients); Marshal.ReleaseComObject(rti); Marshal.ReleaseComObject(doc); Marshal.ReleaseComObject(ndb); Marshal.ReleaseComObject(ns); rti = null; doc = null; ndb = null; ns = null; }
public void SendMail() { try { NotesSession ns = new NotesSessionClass(); ns.Initialize(pwd); NotesDatabase ndb = ns.GetDatabase(serverName, nsfFile, false); NotesDocument doc = ndb.CreateDocument(); doc.ReplaceItemValue("Form", "Memo"); string[] sendtoString = mailTo.ToArray(); doc.ReplaceItemValue("SendTo", sendtoString); doc.ReplaceItemValue("Subject", subject); NotesRichTextItem rt = doc.CreateRichTextItem("Body"); rt.AppendText(body); if ((attFileName != null) && (attFileName.Count > 0)) { NotesRichTextItem item = doc.CreateRichTextItem("attachment"); foreach (string att in attFileName) { item.EmbedObject(EMBED_TYPE.EMBED_ATTACHMENT, "", att, "attachment"); } } object obj = doc.GetItemValue("SendTo"); doc.Send(false, ref obj); } catch (Exception ex) { throw ex; } }
/// <summary> /// Sends the via notes. /// </summary> /// <param name="settings">Any settings needed</param> /// <param name="month">The month.</param> /// <param name="year">The year.</param> /// <param name="fullFilename">The full filename.</param> /// <param name="emailAddress">The email address.</param> /// <param name="password">The password required to submit</param> public void Send(Settings settings, string month, string year, string fullFilename, string emailAddress, SecureString password = null) { // Two digit month and four digit year NotesSession session = new NotesSession(); session.Initialize(); NotesDatabase database = session.GetDatabase("Pride/Tessella", "mail\\waldm.nsf"); if (!database.IsOpen) { database.Open(); } NotesDocument document = database.CreateDocument(); document.ReplaceItemValue("Form", "Memo"); document.ReplaceItemValue("Sendto", emailAddress); string subject = settings.StaffID + " " + month + "/" + year; document.ReplaceItemValue("Subject", subject); NotesRichTextItem attachment = document.CreateRichTextItem("Attachment"); attachment.EmbedObject(EMBED_TYPE.EMBED_ATTACHMENT, string.Empty, fullFilename, "Attachment"); document.SaveMessageOnSend = true; document.ReplaceItemValue("PostedDate", DateTime.Now); document.Send(false, emailAddress); }
/// <summary> /// 发送新信件 /// </summary> /// <param name="pSupervisors">抄送人</param> /// <param name="pSendSecret">密送人</param> /// <param name="pSubject">主题</param> /// <param name="strMailContent">内容</param> /// <returns></returns> public bool SendMailInfo(object pSupervisors, object pSendSecret, object pSubject, string strMailContent) { bool bResult = false; NotesDocument pMailDocument = null; NotesRichTextItem pContentItem = null; try { pMailDocument = this.pNotesDatabase.CreateDocument(); pMailDocument.ReplaceItemValue("Form", "Memo"); pMailDocument.ReplaceItemValue("CopyTo", pSupervisors); //抄送 pMailDocument.ReplaceItemValue("BlindCopyTo", pSendSecret); //密送 pMailDocument.ReplaceItemValue("Subject", pSubject); pMailDocument.ReplaceItemValue("PostedDate", DateTime.Now.ToString()); pContentItem = pMailDocument.CreateRichTextItem("Body"); pContentItem.AppendText(strMailContent); object pSendOwner = this._strUserName; pMailDocument.Send(false, ref pSendOwner); bResult = true; } catch (Exception ex) { this.strMessage = ex.Message; bResult = false; } finally { if (pContentItem != null) { Marshal.ReleaseComObject(pContentItem); } if (pMailDocument != null) { Marshal.ReleaseComObject(pMailDocument); } pContentItem = null; pMailDocument = null; } return(bResult); }
/// <summary> /// Извлечение файла в указанный путь /// </summary> /// <param name="notesRich">Элемент notesRich</param> /// <param name="path">Путь к файлу</param> /// <returns>Возврат всех наименований файлов вложений</returns> public List <string> ExtractFile(NotesRichTextItem notesRich, string path) { if (notesRich != null) { if (notesRich.type == IT_TYPE.RICHTEXT) { List <string> listFullPath = new List <string>(); if (notesRich.EmbeddedObjects != null) { foreach (var embedded in notesRich.EmbeddedObjects) { if (embedded.Type == 1454) { var fileName = path + embedded.Name; embedded.ExtractFile(fileName); listFullPath.Add(fileName); } } return(listFullPath); } } } return(null); }
/// <summary> /// Формирование модели для отправки по SMTP протоколу /// </summary> /// <param name="pathSaveFile">Путь сохранения вложенных в письма файлов на отправку</param> public List <MailLotusOutlookOut> SendMailOut(string pathSaveFile) { var mailLotusOutlookOut = new List <MailLotusOutlookOut>(); var publicFunction = new PublicFunctionInfo.PublicFunctionInfo(); Db.LotusConnectedDataBaseServer(Config.LotusServer, Config.LotusMailSend); if (Db.Db == null) { throw new InvalidOperationException("Фатальная ошибка нет соединения с сервером!"); } var docList = new List <string>(); try { NotesView = Db.GetViewLotus("$Inbox"); Document = NotesView.GetFirstDocument(); while (Document != null) { var mail = new MailLotusOutlookOut { IdMail = Document.UniversalID, MailAdressOut = Document.GetItemValue("Subject")[0].ToString(), Body = Document.GetItemValue("Body")[0].ToString() }; NotesRichTextItem bodyFileExtractMail = Document.GetFirstItem("Body") as NotesRichTextItem; var nameFileList = publicFunction.ExtractFile(bodyFileExtractMail, pathSaveFile); mail.FullPathListFile = nameFileList != null && nameFileList.Count > 0 ? string.Join(";", nameFileList) : null; mail.MailAdressIn = Document.GetItemValue("From")[0].ToString(); docList.Add(Document.UniversalID); mailLotusOutlookOut.Add(mail); Document = NotesView.GetNextDocument(Document); } } catch (Exception ex) { Loggers.Log4NetLogger.Error(ex); throw; } finally { if (Document != null) { Marshal.ReleaseComObject(Document); } Document = null; if (NotesView != null) { Marshal.ReleaseComObject(NotesView); } NotesView = null; } foreach (var unId in docList) { Document = Db.Db.GetDocumentByUNID(unId); if (Document == null) { throw new InvalidOperationException($"No document {unId}"); } Document.Remove(true); Marshal.ReleaseComObject(Document); } return(mailLotusOutlookOut); }
public string SendMail(MailBody mailBody, MailSettings mailSettings) { _MailBody = mailBody; InitSettings(mailSettings); Validation(); NotesSession ns; NotesDatabase ndb; try { ns = new NotesSession(); ns.Initialize(_Password); //初始化NotesDatabase ndb = ns.GetDatabase(_SMTPHost, "names.nsf", false); NotesDocument doc = ndb.CreateDocument(); doc.ReplaceItemValue("Form", "Memo"); //收件人信息 doc.ReplaceItemValue("SendTo", ConvertToString(_MailBody.MailTo)); if (_MailBody.MailCc != null && _MailBody.MailCc.Count > 0) { doc.ReplaceItemValue("CopyTo", ConvertToString(_MailBody.MailCc)); } if (_MailBody.MailBcc != null && _MailBody.MailBcc.Count > 0) { doc.ReplaceItemValue("BlindCopyTo", ConvertToString(_MailBody.MailBcc)); } //邮件主题 doc.ReplaceItemValue("Subject", _MailBody.Subject); //邮件正文 if (_MailBody.IsHtmlBody) { NotesStream body = ns.CreateStream(); body.WriteText(_MailBody.Body, EOL_TYPE.EOL_PLATFORM); NotesMIMEEntity mime = doc.CreateMIMEEntity("Body"); mime.SetContentFromText(body, "text/HTML;charset=gb2312", MIME_ENCODING.ENC_NONE); body.Truncate(); } else { NotesRichTextItem rt = doc.CreateRichTextItem("Body"); rt.AppendText(_MailBody.Body); } //NotesRichTextItem rt = doc.CreateRichTextItem("Body"); //if (_MailBody.IsHtmlBody) //{ // NotesRichTextStyle richtextStyle = ns.CreateRichTextStyle(); // richtextStyle.PassThruHTML = 1; // rt.AppendStyle(richtextStyle); //} //rt.AppendText(_MailBody.Body); //附件 //if (_MailBody.MailAttachments != null) //{ // NotesRichTextItem attachment = doc.CreateRichTextItem("attachment"); // foreach (MailAttachment a in _MailBody.MailAttachments) // { // if (!string.IsNullOrEmpty(a.Location)) // { // attachment.EmbedObject(EMBED_TYPE.EMBED_ATTACHMENT, "", a.Location, "attachment"); // } // } //} //发送邮件 object obj = doc.GetItemValue("SendTo"); doc.Send(false, ref obj); doc = null; return(""); } catch (Exception ex) { if (ex.InnerException == null) { HandleMailLogs(ex.Message + "内部错误信息为:null"); } else { HandleMailLogs(ex.Message + "内部错误信息为:" + ex.InnerException.Message); } return("发送邮件失败"); } finally { ndb = null; ns = null; RecordTheMail(); } }
public void Pub() { try { NotesSession ns = new NotesSessionClass(); ns.Initialize(pwd); NotesDatabase ndb = ns.GetDatabase(serverName, nsfFile, false); NotesDocument doc = ndb.CreateDocument(); doc.ReplaceItemValue("Form", "中央气象台产品记录"); doc.ReplaceItemValue("dbname_11", "juece.nsf"); doc.ReplaceItemValue("dbname_12", "juece.nsf"); doc.ReplaceItemValue("dbname_13", "juece.nsf"); doc.ReplaceItemValue("dbname_21", "juece.nsf"); doc.ReplaceItemValue("dbname_22", "juece.nsf"); doc.ReplaceItemValue("dbname_222", "juece.nsf"); doc.ReplaceItemValue("dbname_23", "juece.nsf"); doc.ReplaceItemValue("dbname_24", "juece.nsf"); doc.ReplaceItemValue("dbname_30", "juece.nsf"); doc.ReplaceItemValue("doctype", "OCX"); doc.ReplaceItemValue("Encrypt", "0"); doc.ReplaceItemValue("img", ""); doc.ReplaceItemValue("issuetime", this.dateNum); doc.ReplaceItemValue("SendTo", "CMA决策"); doc.ReplaceItemValue("SendTobyHub", "各省气象信息共享数据库"); doc.ReplaceItemValue("sendOk", "0"); doc.ReplaceItemValue("role", "周军"); doc.ReplaceItemValue("role_1", "短期科"); doc.ReplaceItemValue("标题域", this.Title); doc.ReplaceItemValue("标题域_1", this.Title); doc.ReplaceItemValue("部委", "0"); doc.ReplaceItemValue("草稿", "0"); doc.ReplaceItemValue("产品", "天气预报"); doc.ReplaceItemValue("产品_1", "天气预报"); doc.ReplaceItemValue("发布单位", "国家气象中心"); doc.ReplaceItemValue("发布单位_1", "中央气象台"); doc.ReplaceItemValue("发布单位_1_1", "中央气象台"); doc.ReplaceItemValue("发布单位_2", "国家气象中心"); doc.ReplaceItemValue("发布单位_e", "qxt"); doc.ReplaceItemValue("发布时间", this.dateNum); doc.ReplaceItemValue("发布时间_1", this.datePy); doc.ReplaceItemValue("发布时间_2", this.dateNum); //doc.ReplaceItemValue("内容", this.Content); doc.ReplaceItemValue("日期1", this.dateNum); doc.ReplaceItemValue("状态", "1"); if ((attFileName != null) && (attFileName.Count > 0)) { NotesRichTextItem item = doc.CreateRichTextItem("attachment"); foreach (string att in attFileName) { item.EmbedObject(EMBED_TYPE.EMBED_ATTACHMENT, "", att, "attachment"); doc.ReplaceItemValue("fname", System.IO.Path.GetFileName(att)); } } doc.ComputeWithForm(true, false); object obj = doc.GetItemValue("SendTo"); doc.Send(false, ref obj); } catch (Exception ex) { throw ex; } }
public bool RelayMailInfo(object pSupervisors, object pSendSecret, string strNotesUID, string strMailContent, object strSender) { bool bResult = false; NotesView pParentView; NotesDocument pParentDocument; try { if (this._strDataBase == "names.nsf") { this.pNotesDatabase = this.pNotesSession.GetDatabase(this._strDomain, this._strDataBase, false); } pParentView = this.pNotesDatabase.GetView("($inbox)"); pParentDocument = pParentView.GetFirstDocument(); while (pParentDocument != null) { if (pParentDocument.UniversalID == strNotesUID) { NotesDocument pRelayDocument = pParentDocument.CreateReplyMessage(false); string strRelaySubject = (((object[])pParentDocument.GetItemValue("Subject"))[0] == null) ? "N/A" : ((object[])pParentDocument.GetItemValue("Subject"))[0].ToString(); pParentDocument.ReplaceItemValue("Form", "Reply"); pParentDocument.ReplaceItemValue("CopyTo", pSupervisors); //抄送 pParentDocument.ReplaceItemValue("BlindCopyTo", pSendSecret); //密送 pParentDocument.ReplaceItemValue("Subject", "回复:" + strRelaySubject); pParentDocument.ReplaceItemValue("PostedDate", DateTime.Now.ToString()); pParentDocument.ReplaceItemValue("Principal", "CN=tcsadmin/OU=技术支持部/OU=产品运营中心/O=runstar"); //pParentDocument.ReplaceItemValue("Principal", strSender); pParentDocument.ReplaceItemValue("Body", ""); pParentDocument.ReplaceItemValue("客服中心", strNotesUID); if (pParentDocument.HasItem("Reader")) { pParentDocument.ReplaceItemValue("Reader", "NO"); } NotesRichTextItem pOldItem = (NotesRichTextItem)pParentDocument.GetFirstItem("Body"); pOldItem.AppendText(strMailContent); pOldItem.AddNewLine(5, false); pOldItem.AppendRTItem((NotesRichTextItem)pRelayDocument.GetFirstItem("Body")); object pSendOwner = strSender; //"孙露" pParentDocument.Send(false, ref pSendOwner); bResult = true; break; } else { bResult = false; this.strMessage = "不能找到原始信件,原信件可能已删除,请新建一封信的信件给接收人!"; } pParentDocument = pParentView.GetNextDocument(pParentDocument); } } catch (Exception ex) { this.strMessage = ex.Message; bResult = false; } finally { pParentDocument = null; pParentView = null; } return(bResult); }
public string Send(MailBody mailBody) { _MailBody = mailBody; InitSettings(); Validation(); NotesSession ns; NotesDatabase ndb; try { ns = new NotesSession(); ns.Initialize(_MailSet.Password); //初始化NotesDatabase ndb = ns.GetDatabase(_MailSet.SMTPHost, "names.nsf", false); NotesDocument doc = ndb.CreateDocument(); doc.ReplaceItemValue("Form", "Memo"); //收件人信息 doc.ReplaceItemValue("SendTo", ConvertToString(_MailBody.MailTo)); if (_MailBody.MailCc != null && _MailBody.MailCc.Count > 0) { doc.ReplaceItemValue("CopyTo", ConvertToString(_MailBody.MailCc)); } if (_MailBody.MailBcc != null && _MailBody.MailBcc.Count > 0) { doc.ReplaceItemValue("BlindCopyTo", ConvertToString(_MailBody.MailBcc)); } //邮件主题 doc.ReplaceItemValue("Subject", _MailBody.Subject); //邮件正文 if (_MailBody.IsHtmlBody) { NotesStream body = ns.CreateStream(); body.WriteText(_MailBody.Body, EOL_TYPE.EOL_PLATFORM); NotesMIMEEntity mime = doc.CreateMIMEEntity("Body"); mime.SetContentFromText(body, "text/HTML;charset=gb2312", MIME_ENCODING.ENC_NONE); body.Truncate(); } else { NotesRichTextItem rt = doc.CreateRichTextItem("Body"); rt.AppendText(_MailBody.Body); } //发送邮件 object obj = doc.GetItemValue("SendTo"); doc.Send(false, ref obj); doc = null; return(""); } catch (Exception ex) { Log.Write(ex); return("发送邮件失败"); } finally { ndb = null; ns = null; } }