示例#1
0
            /// <summary>
            /// Методы формирования http-запроса
            /// </summary>
            public static WebDAVRequest Create(string sMethod, string sUrl, byte[] data, ICredentials credentials)
            {
                WebDAVRequest req = Create(sMethod, sUrl, credentials);

                req.WriteContent(data);
                return(req);
            }
示例#2
0
        /// <summary>
        /// Метод отправки коллекции писем
        /// </summary>
        /// <param name="messages">коллекция писем для отправки  - объектов типа MailMessage</param>
        /// <param name="sMailBoxUrl">url почтого ящика с которого отправляется письмо, например http://dm.croc.ru/exchange/DAlexandrov</param>
        public static void Send(ICollection messages, string sMailBoxUrl, int nTimeout, ICredentials credentials)
        {
            if (0 == messages.Count)
            {
                return;
            }

            string        draftsUrl     = sMailBoxUrl + "/drafts/";
            StringBuilder mailToDeliver = new StringBuilder();

            mailToDeliver.Append("<?xml version=\"1.0\"?><D:move xmlns:D=\"DAV:\"><D:target>");
            WebDAVRequest req;

            foreach (MailMessage m in messages)
            {
                ///
                string mailUrl = draftsUrl + Guid.NewGuid().ToString("N") + ".eml";
                req = WebDAVRequest.Create(WebDAVMethods.PROPPATCH, mailUrl, m.ToXmlByteArray(), credentials);
                req.SetTimeout(nTimeout);
                req.Send();
                mailToDeliver.AppendFormat("<D:href>{0}</D:href>", mailUrl);
                ///
            }


            mailToDeliver.Append("</D:target></D:move>");

            ///
            byte[] data = Encoding.UTF8.GetBytes(mailToDeliver.ToString());
            req = WebDAVRequest.Create(WebDAVMethods.BMOVE, draftsUrl, credentials);
            req.SetTimeout(nTimeout);
            req.AddHeader("Destination", sMailBoxUrl + "/##DavMailSubmissionURI##/");
            req.AddHeader("Saveinsent", "f");
            req.WriteContent(data);
            req.Send();
        }