Ejemplo n.º 1
0
        public string GetMessageHtml(Guid id)
        {
            ApiModel.Message message = GetMessage(id);

            string html = message.MimeMessage?.HtmlBody;

            if (html == null)
            {
                html = "<pre>" + HtmlAgilityPack.HtmlDocument.HtmlEncode(message.MimeMessage?.TextBody ?? "") + "</pre>";
            }


            HtmlDocument doc = new HtmlDocument();

            doc.LoadHtml(html);



            HtmlNodeCollection imageElements = doc.DocumentNode.SelectNodes("//img[starts-with(@src, 'cid:')]");

            if (imageElements != null)
            {
                foreach (HtmlNode imageElement in imageElements)
                {
                    string cid = imageElement.Attributes["src"].Value.Replace("cid:", "", StringComparison.OrdinalIgnoreCase);

                    var part = message.Parts.Flatten(p => p.ChildParts).FirstOrDefault(p => p.ContentId == cid);

                    imageElement.Attributes["src"].Value = $"api/Messages/{id.ToString()}/part/{part?.Id ?? "notfound"}/content";
                }
            }

            return(doc.DocumentNode.OuterHtml);
        }
Ejemplo n.º 2
0
        public ApiModel.Message GetMessage(Guid id)
        {
            var result = new ApiModel.Message(GetDbMessage(id));

            return(result);
        }
Ejemplo n.º 3
0
 public string GetMessageSource(Guid id)
 {
     ApiModel.Message message = GetMessage(id);
     return(message.MimeMessage.ToString());
 }
Ejemplo n.º 4
0
 public string GetMessageSourceRaw(Guid id)
 {
     ApiModel.Message message = GetMessage(id);
     return(System.Text.Encoding.UTF8.GetString(message.Data));
 }