2012-01-24 6 views
1

Я использую EWS для отправки электронной почты с встроенными вложениями.Отправка встроенных вложений с помощью ews

Я использовать следующий код для него:

var attachment = attachments.AddFileAttachment(path); 
attachment.ContentId = cid; 
attachment.IsInline = true; 
attachment.ContentType = "PNG/Image"; 

Html тело сообщения содержит следующий фрагмент

<img src=""cid:{cid}""></img> 

где {CID} является значением ИДС поля.

Это работает, когда я проверяю электронную почту с Outlook, но в OWA изображение не отображается в теле сообщения.

Пожалуйста, предложите мне правильный путь для отправки почты со встроенным изображением через EWS для просмотра в OWA.

+0

Привет, вы нашли решение для этого? –

ответ

1

Этот код работает для меня, и я могу видеть встроенное приложение в Outlook/OWA/Mobile.

Шагов:

  1. HTML тело с заполнителями для contentids

  2. Replace, что заполнители с фактическим крепежным contentids

  3. Создать новое вложение и установить свойство рядного (истину) и contentid (фактический контент для соответствующего присоединения)

    string attachment = "c:\\inlineattachment.png"; 
    
        // Create an e-mail message using the ExchangeService. 
        EmailMessage message = new EmailMessage(ExchangeServiceObject); 
    
        // Subject 
        message.Subject = "Email with inline attachments"; 
    
        // Message body with place holder for contentid 
        message.Body = "Email body with inline attachment </br> <img src=\"cid:{0}\">"; 
        message.Body.BodyType = BodyType.HTML; 
    
        // Replace the place holder with contentid 
        // Random GUID is used to avoid name collision for contentids 
        string newGuid = Guid.NewGuid().ToString(); 
        message.Body = string.Format(message.Body, newGuid); 
    
        // Create a new attachment and add necessary properties to make it inline 
        message.Attachments.AddFileAttachment(attachment); 
        message.Attachments[message.Attachments.Count - 1].IsInline = true; 
        message.Attachments[message.Attachments.Count - 1].ContentId = newGuid; 
    
        // Add recipeint 
        message.ToRecipients.Add("[email protected]"); 
    
        // Send the e-mail message and save a copy. 
        message.SendAndSaveCopy(); 
    

 Смежные вопросы

  • Нет связанных вопросов^_^