如何将图像文件封装到电子邮件中?

时间:2010-01-26 15:48:57

标签: language-agnostic image email mime encapsulation

有人可以解释一下如何使用嵌入式图像文件创建“简单”电子邮件吗? 我知道有很多RFC可以解释它,但我并没有成功地做到这一点。 我必须以编程方式构建电子邮件的正文,而不使用任何框架。不要问我使用的语言......

图像是base64编码的。 内容类型:多部分/相关;边界= “边界示例-1”;类型=文本/ HTML

如果在我找不到的某个网站上有关于如何做到这一点的“可读”解释,我会很高兴听到它。

皮尔

1 个答案:

答案 0 :(得分:4)

有很多RFC,因为它并不那么简单。

要在电子邮件中嵌入图像和/或附件,就会创建MIME格式。

MIME实际上是一个树结构:

+-multipart/mixed
  +-multipart/related
  | +-multipart/alternative
  | |  +-text/plain
  | |  +-text/html
  | +-image/gif
  | +-image/jpeg
  +-application/x-zip-compressed
  +-application/x-zip-compressed

每个多部分mime对象由一个或多个部分组成。 使用边界定界符分隔零件。

multipart / mixed - 部件不相关时使用(带附件的常规电子邮件)

multipart / related - 当pars相关时使用。 例如,包含此HTML使用的图像的HTML电子邮件。 (Cid协议用于HTML:)

multipart / alternative - 指定部件包含相同内容但具有不同的表示形式。 例如,doc格式,html和纯文本中的相同文本。

  1. 首先,您需要构建正确的mime结构,
  2. 然后使用适当的编码(Base64,QuotedPrintable)编码所有mime部分,
  3. 为所有部分添加正确的标题
  4. 如果它们包含国家或特殊字符,则对其进行编码,
  5. 分配边界
  6. 最后呈现整个消息
  7. 重点是此问题已经解决。大多数语言都有库来创建和发送电子邮件。

    .NET框架有一个,不完美,但它仍然可能更好,你将创建。

    如果您需要更好地控制电子邮件的外观,还可以查看Mail.dll email component等商业产品。