Здравствуйте, я работаю над проектом в .NET 1.1, и у меня есть требование извлекать (и где-то сохранять) встроенное изображение из получаемых мной электронных писем.
Может кто-нибудь подскажет, с чего начать?
Спасибо
Здравствуйте, я работаю над проектом в .NET 1.1, и у меня есть требование извлекать (и где-то сохранять) встроенное изображение из получаемых мной электронных писем.
Может кто-нибудь подскажет, с чего начать?
Спасибо
Электронное письмо, загруженное с POP-сервера, будет в текстовом формате, вам нужно будет проанализировать все электронное письмо и найти все теги <img />
, для которых атрибут src
установлен на cid:*
.
E.g.
<img src='cid:006901c6d391$dee64770$6c822ecf@Z2LC74Q' />
Формат электронного письма, содержащего встроенное изображение, будет следующим:
From: foo1atbar.net
To: foo2atbar.net
Subject: A simple example
Mime-Version: 1.0
Content-Type: multipart/related; boundary="boundary-example"; type="text/html"
--boundary-example
Content-Type: text/html; charset="US-ASCII"
... text of the HTML document, which might contain a URI
referencing a resource in another body part, for example
through a statement such as:
<IMG SRC="cid:foo4atfoo1atbar.net" ALT="IETF logo">
...snip...
Content-Location: CID:somethingatelse ;this header is disregarded
Content-ID: <006901c6d391$dee64770$6c822ecf@Z2LC74Q>
Content-Type: IMAGE/GIF
Content-Transfer-Encoding: BASE64
R0lGODlhGAGgAPEAAP/////ZRaCgoAAAACH+PUNv
cHlyaWdodCAoQykgMTk5LiBVbmF1dGhvcml6ZWQgZHV
wbGljYXRpb24gcHJvaGliaXRlZC4A etc...
...snip...
Если вы посмотрите на нижний колонтитул, он содержит версию вашего изображения в кодировке BASE64. Вы можете извлечь строку BASE64, преобразовать ее в байты на основе набора символов электронной почты и сохранить ее в файл (вы можете получить расширение файла на основе Content-Type). Тада, готово!
Надеюсь, у вас есть идея, как это сделать!
Я также нашел похожий вопрос здесь. Он использует CDO (объекты данных совместной работы).