• “MIME 媒体类型“用来标识网络传输内容的格式标准


    MIME 类型(Multipurpose Internet Mail Extensions 类型),也称为媒体类型,是用来标识网络传输内容的格式的标准。这些类型帮助 Web 服务器和浏览器理解如何处理和显示数据。MIME 类型在 Web 开发和网络通信中起着关键作用,它帮助确保数据在客户端和服务器之间能够正确地传输和处理。MIME 类型在 HTTP 协议中用于指定响应或请求的内容类型。

    MIME 类型的作用

    MIME 类型(或媒体类型)在网络通信中起到了重要作用,主要包括以下几个方面:

    1. 内容识别:MIME 类型帮助服务器和客户端识别传输的数据格式。例如,浏览器知道如何处理 HTML、CSS 和 JavaScript 文件,或者如何显示图像和视频文件。
    2. 数据处理:在不同的数据处理场景中,MIME 类型决定了数据的解析和处理方式。例如,JSON 数据会被解析成 JavaScript 对象,而 PDF 文件会被呈现为文档。
    3. 安全性:正确设置 MIME 类型可以帮助防止某些安全漏洞。例如,通过设置 Content-Type: text/plain,可以防止浏览器将文件解释为可执行的脚本,降低 XSS 攻击的风险。

    常见的 MIME 类型type/subtype

    以下是一些常见的 MIME 类型及其对应的文件扩展名:

    • 文本文件:

      • text/plain:纯文本文件(例如 .txt
      • text/html:HTML 文件(例如 .html.htm
      • text/css:CSS 文件(例如 .css
      • text/javascript 或 application/javascript:JavaScript 文件(例如 .js
    • 图像文件:

      • image/jpeg:JPEG 图像(例如 .jpg.jpeg
      • image/png:PNG 图像(例如 .png
      • image/gif:GIF 图像(例如 .gif
      • image/svg+xml:SVG 图像(例如 .svg
    • 音频和视频文件:

      • audio/mpeg:MPEG 音频文件(例如 .mp3
      • audio/wav:WAV 音频文件(例如 .wav
      • video/mp4:MP4 视频文件(例如 .mp4
      • video/x-msvideo:AVI 视频文件(例如 .avi
    • 应用程序数据:

      • application/json:JSON 数据(例如 .json
      • application/xml:XML 数据(例如 .xml
      • application/pdf:PDF 文件(例如 .pdf
      • application/zip:ZIP 压缩文件(例如 .zip
      • application/x-www-form-urlencoded:表单数据(通常在 POST 请求中使用)
    • 文件上传:

      • multipart/form-data:用于表单数据中包含文件上传(例如在 HTML 表单中使用)

     ----------------------

    email.mime 是 Python 标准库 email 模块中的一个子模块,用于处理邮件的 MIME(Multipurpose Internet Mail Extensions)格式。这个模块使得创建和处理复杂的邮件消息(包括文本、HTML、附件等)变得更加方便。

    主要的子模块和类包括:

    1. email.mime.text:

      • 用于创建文本邮件。
      • 常用类:
        • MIMEText: 用于表示纯文本或 HTML 文本邮件。

      1. from email.mime.text import MIMEText
      2. msg = MIMEText('This is the body of the email', 'plain')
    2. email.mime.multipart:

      • 用于创建多部分邮件,可以包含文本和附件等。
      • 常用类:
        • MIMEMultipart: 用于表示包含多个部分的邮件(如文本部分和附件)。

      1. from email.mime.multipart import MIMEMultipart
      2. msg = MIMEMultipart()
    3. email.mime.application:

      • 用于创建附件邮件。
      • 常用类:
        • MIMEApplication: 用于表示应用程序数据,如 PDF 或其他二进制文件。

      1. from email.mime.application import MIMEApplication
      2. with open('file.pdf', 'rb') as file:
      3. pdf_attachment = MIMEApplication(file.read(), _subtype='pdf')
      4. pdf_attachment.add_header('Content-Disposition', 'attachment', filename='file.pdf')
    4. email.mime.image:

      • 用于处理图像附件。
      • 常用类:
        • MIMEImage: 用于表示图像文件(如 JPEG 或 PNG)。
          ('inline'Content-Disposition 头部字段的一个值,表示内容应直接嵌入邮件正文中,而不是作为附件下载。)

      1. from email.mime.image import MIMEImage
      2. with open('image.jpg', 'rb') as img_file:
      3. img = MIMEImage(img_file.read())
      4. img.add_header('Content-Disposition', 'inline', filename='image.jpg')
    5. email.mime.audio:

      • 用于处理音频文件。
      • 常用类:
        • MIMEAudio: 用于表示音频文件(如 MP3)。

      1. from email.mime.audio import MIMEAudio
      2. with open('audio.mp3', 'rb') as audio_file:
      3. audio = MIMEAudio(audio_file.read(), _subtype='mp3')
      4. audio.add_header('Content-Disposition', 'attachment', filename='audio.mp3')

    这些类和子模块帮助你构建和管理具有复杂结构的电子邮件,包括嵌入式内容和多部分附件。

    ----------

    add_headeremail 模块中 MIMEBase 类的方法,用于向 MIME 对象添加头部信息。它的基本用法如下:

    pythonCopy Code

    mime_object.add_header(name, value, **params)

    • name: 头部名称,例如 'Content-Disposition''Content-Type'
    • value: 头部的值,例如 'attachment''inline'
    • **params: 可选的额外参数,如文件名等。

     --------------

    'Content-Type''Content-Disposition' 是两个常用的 MIME 头部字段,用于描述邮件内容和附件的处理方式。

    • 'Content-Type': 指定邮件内容的类型和格式。例如,对于文本邮件使用 'text/plain',对于 HTML 邮件使用 'text/html',对于附件使用 'application/pdf'

      msg.add_header('Content-Type', 'text/plain')
    • 'Content-Disposition': 指定如何显示邮件内容,尤其是附件。常用的值包括 'attachment'(附件形式)和 'inline'(内嵌形式)。附加参数可以指定附件的文件名。

      pdf_attachment.add_header('Content-Disposition', 'attachment', filename='file.pdf')

    这两个头部字段帮助邮件客户端正确处理和显示邮件内容和附件。

     

  • 相关阅读:
    Java小树的参天成长【包装类】
    Linux环境开发工具yum、makefile的使用 【Linux】
    cadence SPB17.4 - 中文UI设置
    【元宇宙】5个视角,重新看待区块链和元宇宙
    Ubuntu写python脚本实现自定义壁纸幻灯片:字符串拼接法、minidom法
    软件工程与计算总结(十一)人机交互设计
    【深入MaxCompute】人力家:借助Information Schema合理治理费用
    使用html2canvas将html转pdf,由于table表的水平和竖直有滚动条导致显示不全(或者有空白)
    乡村电商人才齐聚浙江建德,这场农播氛围值已拉满!
    Java向上向下转型
  • 原文地址:https://blog.csdn.net/book_dw5189/article/details/142268531