C# Receiving pop3 email with inline images and cid value
我正在努力通过OpenPop组件接收pop3电子邮件。我正在接收来自服务器的电子邮件并将其保存到sql数据库。至此,没有问题。
但是今天,我意识到,一些图像没有显示在Richtextbox上。
这封电子邮件的源代码:
原始图像文件名:image001.jpg
Content-Type: image/jpeg; name="image001.jpg"
Content-Transfer-Encoding: base64
Content-ID: [email protected]
和
In html body, cid value : [email protected]
有了上面的代码,我没有任何问题。因为我正在从CID值获取图像文件名。 (image001.jpg)。我正在从SQL Server获取具有真实图像文件名的图像。
但是,如果我们通过Gmail网络界面发送相同的电子邮件,
Content-Type: image/jpeg; name="image001.jpg"
Content-Disposition: inline; filename="image001.jpg"
Content-Transfer-Encoding: base64
Content-ID: ii_iksd5tmd1_152f4c90885b6c5d
我们在richtextbox上看到CID值:
cid:ii_iksd5tmd1_152f4c90885b6c5d
这是问题所在。
CID值不包含文件名信息。因此,我没有得到图像。从Gmail接收电子邮件时,CID值正在更改。
为了捕获真实的图像文件名,我该怎么办?
非常感谢。
使用以下逻辑来获取文件名:
如果
显然,消息HTML中的cid:URL是指
OpenPop结果:
Content-Description : null
Content-ID : null
Content-Disposition : null
我正在尝试另一个Web界面和相同的结果。
例如:Outlook Web界面
例子 :
HTML BODY in RichText
"img src="cid:ii_iksd5tlv0_152f4c90885b6c5d" height="398" width="530">
img src="cid:ii_iksd5tmd1_152f4c90885b6c5d" height="398" width="530">?>
原始图像文件名:DSC00011.jpg和DSC00018.jpg
在HTML邮件中内联使用的图像不一定具有"真实文件名"。他们可能只使用CID。您应该将CID与图像一起存储在数据库中,然后通过CID从数据库中检索图像以显示它。