получение изображения из электронной почты - PullRequest
0 голосов
/ 29 февраля 2012

Я заметил, что когда кто-то копирует, вставляет электронное письмо и затем отправляет его, значение src изображений изменяется.Например, если в исходном письме есть изображение, являющееся вложением, и его contentId: cid: companlyLogo.А затем кто-то копирует, вставляет это электронное письмо в новый черновик и отправляет это значение src, изменяя на: src = "cid: image001.jpg@01CCF6B1.A4CA2FE0".

Я понятия не имею, как получить это изображение и сохранить его в объекте изображения в c #.В настоящее время я использую EWS API для этого.Проблема в том, что, поскольку он является копией, он больше не имеет вложений в качестве исходного электронного письма.

Кто-нибудь имеет представление о том, как получить изображения из этих типов электронных писем?

1 Ответ

3 голосов
/ 29 февраля 2012

Встроенные изображения обрабатываются Exchange в качестве вложений электронной почты. Это означает, что вы можете получить изображения из свойства Item.Attachments. В следующем примере показано, как это сделать с помощью управляемого API EWS. Обратите внимание, что EWS не будет загружать вложения, если вы явно не сообщите об этом, позвонив по номеру LoadPropertiesForItems.

Чтобы узнать, что вложение внедрено, проверьте свойство Attachment.IsInline. EWS позволяет загрузить вложение и сохранить его на диск, вызвав метод FileAttachment.Load.

ExchangeService service = GetService();
var view = new ItemView(1);
var searchFilter = new SearchFilter.IsEqualTo(EmailMessageSchema.Subject, "Some subject text");
var items = service.FindItems(WellKnownFolderName.Inbox, searchFilter, view);
service.LoadPropertiesForItems(items, new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.Attachments));

var item = items.ElementAt(0) as EmailMessage;

for (int i = 0; i < item.Attachments.Count; i++)
{
    var att = item.Attachments[i] as FileAttachment;
    if (att.IsInline && att.ContentType.Contains("image"))
    {
        att.Load(String.Format(@"c:\temp\attachedimage_{0}.jpg", i));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...