多用途互联网邮件扩展(MIME,Multipurpose Internet Mail Extensions)是一个互联网标准,它扩展了电子邮件标准,使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息。
一、MIME headers
MIME是通过标准化电子邮件报文的头部的附加领域(fields)而实现的,这些头部的附加领域,描述新的报文类型的内容和组织形式。
二、MIME版本
MIME版本(MIME-Version),这个头部领域在邮件消息的报文用一个版本号码来指明消息遵从的MIME规范的版本。目前版本是1.0----MIME-Version: 1.0
三、内容类型
内容类型(Content-Type),这个头部领域用于指定消息的类型。一般以下面的形式出现
Content-Type: [type]/[subtype]; parameter
type有下面的形式:
- Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;
- Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;
- Application:用于传输应用程序数据或者二进制数据;
- Message:用于包装一个E-mail消息;
- Image:用于传输静态图片数据;
- Audio:用于传输音频或者音声数据;
- Video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。
subtype用于指定type的详细形式。content-type/subtype配对的集合和与此相关的参数,将随着时间而增长。为了确保这些值在一个有序而且公开的状态下开发,MIME使用Internet Assigned Numbers Authority (IANA)作为中心的注册机制来管理这些值。常用的subtype值如下所示:
- text/plain(纯文本)
- text/html(HTML文档)
- application/xhtml+xml(XHTML文档)
- image/gif(GIF图像)
- image/jpeg(JPEG图像)
- image/png(PNG图像)
- video/mpeg(MPEG动画)
- application/octet-stream(任意的二进制数据)
- application/pdf(PDF文档)
- application/msword(Microsoft Word文件)
- message/rfc822(RFC 822形式)
- multipart/alternative(HTML邮件的HTML形式和纯文本形式,相同内容使用不同形式表示)
- application/x-www-form-urlencoded(使用HTTP的POST方法提交的表单)
- multipart/form-data(同上,但主要用于表单提交时伴随文件上传的场合)
查找与参考:
'hqx' -> 'application/mac-binhex40', 'cpt' -> 'application/mac-compactpro', 'doc' -> 'application/msword', 'bin' -> 'application/octet-stream', 'dms' -> 'application/octet-stream', 'lha' -> 'application/octet-stream', 'lzh' -> 'application/octet-stream', 'exe' -> 'application/octet-stream', 'class' -> 'application/octet-stream', 'so' -> 'application/octet-stream', 'dll' -> 'application/octet-stream', 'oda' -> 'application/oda', 'pdf' -> 'application/pdf', 'ai' -> 'application/postscript', 'eps' -> 'application/postscript', 'ps' -> 'application/postscript', 'smi' -> 'application/smil', 'smil' -> 'application/smil', 'mif' -> 'application/vnd.mif', 'xls' -> 'application/vnd.ms-excel', 'ppt' -> 'application/vnd.ms-powerpoint', 'wbxml' -> 'application/vnd.wap.wbxml', 'wmlc' -> 'application/vnd.wap.wmlc', 'wmlsc' -> 'application/vnd.wap.wmlscriptc', 'bcpio' -> 'application/x-bcpio', 'vcd' -> 'application/x-cdlink', 'pgn' -> 'application/x-chess-pgn', 'cpio' -> 'application/x-cpio', 'csh' -> 'application/x-csh', 'dcr' -> 'application/x-director', 'dir' -> 'application/x-director', 'dxr' -> 'application/x-director', 'dvi' -> 'application/x-dvi', 'spl' -> 'application/x-futuresplash', 'gtar' -> 'application/x-gtar', 'hdf' -> 'application/x-hdf', 'js' -> 'application/x-javascript', 'skp' -> 'application/x-koan', 'skd' -> 'application/x-koan', 'skt' -> 'application/x-koan', 'skm' -> 'application/x-koan', 'latex' -> 'application/x-latex', 'nc' -> 'application/x-netcdf', 'cdf' -> 'application/x-netcdf', 'sh' -> 'application/x-sh', 'shar' -> 'application/x-shar', 'swf' -> 'application/x-shockwave-flash', 'sit' -> 'application/x-stuffit', 'sv4cpio' -> 'application/x-sv4cpio', 'sv4crc' -> 'application/x-sv4crc', 'tar' -> 'application/x-tar', 'tcl' -> 'application/x-tcl', 'tex' -> 'application/x-tex', 'texinfo' -> 'application/x-texinfo', 'texi' -> 'application/x-texinfo', 't' -> 'application/x-troff', 'tr' -> 'application/x-troff', 'roff' -> 'application/x-troff', 'man' -> 'application/x-troff-man', 'me' -> 'application/x-troff-me', 'ms' -> 'application/x-troff-ms', 'ustar' -> 'application/x-ustar', 'src' -> 'application/x-wais-source', 'xhtml' 'application/xhtml+xml', 'xht' -> 'application/xhtml+xml', 'zip' -> 'application/zip', 'au' -> 'audio/basic', 'snd' -> 'audio/basic', 'mid' -> 'audio/midi', 'midi' -> 'audio/midi', 'kar' -> 'audio/midi', 'mpga' -> 'audio/mpeg', 'mp2' -> 'audio/mpeg', 'mp3' -> 'audio/mpeg', 'aif' -> 'audio/x-aiff', 'aiff' -> 'audio/x-aiff', 'aifc' -> 'audio/x-aiff', 'm3u' -> 'audio/x-mpegurl', 'ram' -> 'audio/x-pn-realaudio', 'rm' -> 'audio/x-pn-realaudio', 'rpm' -> 'audio/x-pn-realaudio-plugin', 'ra' -> 'audio/x-realaudio', 'wav' -> 'audio/x-wav', 'pdb' -> 'chemical/x-pdb', 'xyz' -> 'chemical/x-xyz', 'bmp' -> 'image/bmp', 'gif' -> 'image/gif', 'ief' -> 'image/ief', 'jpeg' -> 'image/jpeg', 'jpg' -> 'image/jpeg', 'jpe' -> 'image/jpeg', 'png' -> 'image/png', 'tiff' -> 'image/tiff', 'tif' -> 'image/tiff', 'djvu' -> 'image/vnd.djvu', 'djv' -> 'image/vnd.djvu', 'wbmp' -> 'image/vnd.wap.wbmp', 'ras' -> 'image/x-cmu-raster', 'pnm' -> 'image/x-portable-anymap', 'pbm' -> 'image/x-portable-bitmap', 'pgm' -> 'image/x-portable-graymap', 'ppm' -> 'image/x-portable-pixmap', 'rgb' -> 'image/x-rgb', 'xbm' -> 'image/x-xbitmap', 'xpm' -> 'image/x-xpixmap', 'xwd' -> 'image/x-xwindowdump', 'igs' -> 'model/iges', 'iges' -> 'model/iges', 'msh' -> 'model/mesh', 'mesh' -> 'model/mesh', 'silo' -> 'model/mesh', 'wrl' -> 'model/vrml', 'vrml' -> 'model/vrml', 'css' -> 'text/css', 'html' -> 'text/html', 'htm' -> 'text/html', 'asc' -> 'text/plain', 'txt' -> 'text/plain', 'rtx' -> 'text/richtext', 'rtf' -> 'text/rtf', 'sgml' -> 'text/sgml', 'sgm' -> 'text/sgml', 'tsv' -> 'text/tab-separated-values', 'wml' -> 'text/vnd.wap.wml', 'wmls' -> 'text/vnd.wap.wmlscript', 'etx' -> 'text/x-setext', 'xsl' -> 'text/xml', 'xml' -> 'text/xml', 'mpeg' -> 'video/mpeg', 'mpg' -> 'video/mpeg', 'mpe' -> 'video/mpeg', 'qt' -> 'video/quicktime', 'mov' -> 'video/quicktime', 'mxu' -> 'video/vnd.mpegurl', 'avi' -> 'video/x-msvideo', 'movie' -> 'video/x-sgi-movie', 'ice' -> 'x-conference/x-cooltalk'