我最近在学习网络。
众所周知,SMTP只允许使用7位ASCII。
我想知道SMTP是否可以通过电子邮件发送图片,视频或文件等附件。如果是这样,如何发送附件?
谢谢
答案 0 :(得分:0)
使用SMTP,几乎每封电子邮件都使用MIME(多用途Internet邮件扩展,RFC2045)。 MIME独立于SMTP,但可以认为是对它的扩展。 HTTP协议也使用MIME。
MIME包含两部分。 MIME标头和MIME内容。 MIME标头描述了内容的内容。 MIME充满了各种功能,但我只是在描述与您的问题相关的内容。
感兴趣的MIME标头:
Content-Type
描述了内容。简单来说,文字只是text/plain
而image/jpeg
是JPEG图片。Content-Transfer-Encoding
描述了内容的编码方式。电子邮件中的常见编码为quoted-printable
和base64
。这些编码专为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。