.NET如何从电子邮件中提取嵌入的图像?

时间:2009-08-11 09:29:21

标签: .net image email extract embedded-resource

你好我正在研究.NET 1.1中的一个项目,我需要从我收到的电子邮件中提取(并保存在某处)嵌入的图像。

有人能给我一个从哪里开始的线索吗?

谢谢

1 个答案:

答案 0 :(得分:2)

从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获取文件扩展名)。田田,完成了!

希望你知道如何做到这一点!

修改

我也发现了类似的问题here。他正在使用CDO(协作数据对象)。