Как отправить электронное письмо со встроенным изображением без файла ATT00001.bin с c# - PullRequest
0 голосов
/ 14 февраля 2020

Я могу отправлять электронную почту через SMTP с c#, в результате чего вставка изображений с LinkedResource. Проблема в том, что полученные письма содержат файлы ATT0000X.bin в виде вложений. Как мне убедиться, что эти файлы не добавлены в электронное письмо?

Заранее спасибо!

1 Ответ

0 голосов
/ 03 мая 2020

Я только что столкнулся с этой проблемой при попытке вставить изображение в электронное письмо. У меня были две ошибки в моем коде, возможно, одна из них происходит с вами:

  1. Сначала я встраивал изображение, но не определил тег для его отображения в моем Тело. Это было исправлено добавлением в мой HTML тега cid: yourContentId и последующим назначением этого тега в качестве ContentId изображения. Это устранило проблему в Outlook, но оно все еще показывало клип, как будто в электронном письме было вложение, но не было места, чтобы реально увидеть вложение. Это выглядит супер спамом. В Outlook Web вы все еще можете видеть вложение ATT00001.bin.

  2. Моя вторая ошибка - не определение ContentType для моего встроенного изображения при создании LinkedResource. Это исправило отображение клипа в настольном клиенте, а в веб-клиенте вложения больше не было видно. Окончательный код выглядит примерно так:

        LinkedResource embeddedImage = new LinkedResource(imageStream, new System.Net.Mime.ContentType("image/jpeg"));
        embeddedImage.ContentId = "ContentId";
        altview.LinkedResources.Add(embeddedImage);
        mailMessage.AlternateViews.Add(altview);
    
...