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