У меня есть следующий код для встраивания изображений в Outlook MailItems
:
private void ReplaceImageIds()
{
foreach(var image in Image.GetImagesFromText(HTMLBody))
{
var imageTag = $"<img src \" cid:{image.Id.ToString()} \"/>";
var attachment = _mailItem.Attachments.Add(image.FilePath, OlAttachmentType.olEmbeddeditem, null, "");
attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x370E001F", "image/png");
attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", image.Id.ToString());
HTMLBody = HTMLBody.Replace($"ImageId={image.Id.ToString()}", imageTag);
}
}
Это прекрасно работает. Изображения показываются, когда я получаю электронное письмо - но только там.
Когда я смотрю на мою папку отправленных писем в outlook, изображения просто отображаются так:
У кого-нибудь есть идея, почему они показаны таким образом, и я могу помочь мне это исправить?
Я смущен этим, потому что изображения показаныкогда я получаю электронное письмо.
Почта отправляется так:
public Boolean Send()
{
// Check if all properties are set.
Validate();
try
{
var oApp = new Application();
var oNS = oApp.GetNamespace("mapi");
oNS.Logon();
_mailItem = oApp.CreateItem(OlItemType.olMailItem) as MailItem;
// Set To, CC and BCC.
AddRecipients();
// Replace images.
ReplaceImageIds();
if (Body != null)
_mailItem.Body = Body;
if(HTMLBody != null)
_mailItem.HTMLBody = HTMLBody;
_mailItem.Subject = Subject;
// Set account to send.
SetSendingAccount(oApp);
// Add attachments.
AddAttachments();
_mailItem.Send();
oNS.Logoff();
return true;
}
catch (System.Exception ex)
{
Utils.LogException(ex, "Could not send email.");
throw new System.Exception("Could not send email.", ex);
}
}
Заранее спасибо.