При работе на C# с управляемым API EWS возникают проблемы с эффективным получением изображений, хранящихся в виде встроенных вложений.
Конечной точкой является отображение электронного письма со встроенными изображениями в виде полностью сформированной HTML-страницы на панели. Код, который мы сейчас используем:
string sHTMLCOntent = item.Body;
FileAttachment[] attachments = null;
if (item.Attachments.Count != 0)
{
attachments = new FileAttachment[item.Attachments.Count];
for (int i = 0; i < item.Attachments.Count; i++)
{
string sType = item.Attachments[i].ContentType.ToLower();
if (sType.Contains("image"))
{
attachments[i] = (FileAttachment)item.Attachments[i];
string sID = attachments[i].ContentId;
sType = sType.Replace("image/", "");
string sFilename = sID + "." + sType;
string sPathPlusFilename = Directory.GetCurrentDirectory() + "\\" + sFilename;
attachments[i].Load(sFilename);
string oldString = "cid:" + sID;
sHTMLCOntent = sHTMLCOntent.Replace(oldString, sPathPlusFilename);
}
}
}
.. это не очень эффективно и замедляет реакцию нашего веб-приложения. У кого-нибудь есть лучшее решение этой проблемы? Мы используем Exchange 2007 SP1, поэтому свойство IsInline не будет работать только для Exchange 2010.
item.Body
? - person PreguntonCojoneroCabrón   schedule 31.03.2018