/// <summary> /// 转发/回复信件 /// </summary> /// <param name="pSupervisors">抄送人</param> /// <param name="pSendSecret">密送人</param> /// <param name="strNotesUID">原NotesID</param> /// <param name="strMailContent">内容</param> /// <returns></returns> public bool RelayMailInfo(object pSupervisors, object pSendSecret, string strNotesUID, string strMailContent) { bool bResult = false; NotesView pParentView = null; NotesDocument pParentDocument = null; try { if (this._strDataBase == "names.nsf") { this.pNotesDatabase = this._pNotesSession.GetDatabase(this._strDomain, this._strDataBase, false); } if (this.pNotesDatabase == null) { throw new Exception("不能打开数据库:" + this._strDataBase); } pParentView = this.pNotesDatabase.GetView("($inbox)"); pParentDocument = pParentView.GetFirstDocument(); while (pParentDocument != null) { if (pParentDocument.UniversalID == strNotesUID) { NotesDocument pRelayDocument = pParentDocument.CreateReplyMessage(false); string strPrincipal = (((object[])pParentDocument.GetItemValue("Principal"))[0] == null) ? "N/A" : ((object[])pParentDocument.GetItemValue("Principal"))[0].ToString(); 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=netadmin/OU=网管部/OU=产品运营中心/O=runstar"); pParentDocument.ReplaceItemValue("Body", ""); pParentDocument.ReplaceItemValue("SSM_Agent", 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 = strPrincipal;//"孙露" pParentDocument.Send(false, ref pSendOwner); bResult = true; Marshal.ReleaseComObject(pOldItem); Marshal.ReleaseComObject(pRelayDocument); pOldItem = null; pRelayDocument = null; break; } else { bResult = false; this.strMessage = "不能找到原始信件,原信件可能已删除,请新建一封信的信件给接收人!"; } pParentDocument = pParentView.GetNextDocument(pParentDocument); } } catch (Exception ex) { this.strMessage = ex.Message; bResult = false; } finally { if (pParentDocument != null) { Marshal.ReleaseComObject(pParentDocument); } if (pParentView != null) { Marshal.ReleaseComObject(pParentView); } pParentDocument = null; pParentView = null; } return(bResult); }