Example #1
0
        /// <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;
        }
Example #2
0
        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);
 }
Example #6
0
        /// <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);
        }
Example #7
0
        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();
            }
        }
Example #8
0
        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;
            }
        }
Example #9
0
        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);
        }
Example #10
0
        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;
            }
        }