SMTP发送附件

时间:2016-04-11 17:07:10

标签: email smtp network-protocols

我最近在学习网络。

众所周知,SMTP只允许使用7位ASCII。

我想知道SMTP是否可以通过电子邮件发送图片,视频或文件等附件。如果是这样,如何发送附件?

谢谢

1 个答案:

答案 0 :(得分:0)

使用SMTP,几乎每封电子邮件都使用MIME(多用途Internet邮件扩展,RFC2045)。 MIME独立于SMTP,但可以认为是对它的扩展。 HTTP协议也使用MIME。

MIME包含两部分。 MIME标头和MIME内容。 MIME标头描述了内容的内容。 MIME充满了各种功能,但我只是在描述与您的问题相关的内容。

感兴趣的MIME标头:

  • Content-Type描述了内容。简单来说,文字只是text/plainimage/jpeg是JPEG图片。
  • Content-Transfer-Encoding描述了内容的编码方式。电子邮件中的常见编码为quoted-printablebase64。这些编码专为SMTP的7位交付而设计。
  • Content-Disposition标头包含例如附件文件名。

对于发送附件或多个附件,每个附件都按上述方式编码(某些标头+编码内容)。第一个Content-Type标头设置为multipart/mixed并且标记为boundary,如下所示:

Content-Type: multipart/mixed; boundary=4vvtTcl0dIpecpyi12ab54

每个附件(标题+内容)都以边界标记开头:

--4vvtTcl0dIpecpyi12ab54

后跟MIME标题,然后是内容。通过这种方式,电子邮件客户端可以将附件彼此分开。

我还想提一下,对于8位支持,SMTP有8BITMIME扩展。请参阅RFC6152: SMTP Service Extension for 8-bit MIME Transport