如何区分"real"邮件附件和HTML邮件中的图片?

  • 本文关键字:HTML 何区 real c# .net pop3 openpop
  • 更新时间 :
  • 英文 :


我在摆弄OpenPop,这是一个用C#编写的用于POP3邮件提取的库。它似乎还可以,但我不太明白如何区分邮件中明确附加的文件和HTML内容邮件中的图片等内容。这个库将它们全部视为"附件"。出于我的需要,我不会将HTML邮件中的图片视为附件
来自库文档:

如果
,MessagePart被视为附件-它不包含文本,也不是多部分消息或
-它有一个Content-Disposition头,上面写着它是一个附件

我应该做什么或搜索什么,至少在理论上是这样(因为我对邮件协议并不熟悉)?

您可以检查电子邮件正文中是否引用了图像文件。您需要解析HTML并在CSS选择器中查找imgbackground-image属性等标记。如果邮件本身没有使用该图像,则将其视为"真实"附件。

我用这种方式完成了它,它似乎起作用了:

foreach (OpenPop.Mime.MessagePart fileItem in elencoAtt)
{
    System.Net.Mime.ContentDisposition cDisp = fileItem.ContentDisposition;
    //Check for the attachment...
    if (!cDisp.Inline)
    {
        // Attachment not in-line
    }
    else
    {
        // Attachment in-line
    }
}

我是OpenPop.NET.的开发人员

这只是关于包含附件的电子邮件的一些背景信息。托尼的答案是正确的。

当我实现OpenPop.NET的那个部分时,我也遇到了区分附件和非附件的问题。MIME有一个标头Content-Disposition,它能够判断某个部分是否是附件。

例如,这里有一个附件

Content-Disposition: attachment

这里可能是电子邮件的html部分的图像

Content-Disposition: inline

这看起来有多好,问题是许多电子邮件客户端没有添加这些标题,这让像OpenPop.NET这样的读者很难理解。我们选择不查看电子邮件的所有HTML部分来查看引用了哪些图像,因此这现在取决于库的用户。

如果你为这个问题制定了一个好的解决方案,它可以作为项目的一个例子添加。

相关内容

  • 没有找到相关文章

最新更新