MIME协议详解

合集下载

MIME协议(五)--MIME邮件的编码方式

MIME协议(五)--MIME邮件的编码方式

MIME协议(五)--MIME邮件的编码⽅式5 MIME邮件的编码⽅式由于每个ASCII码字符只占⽤⼀个字节(8个bit位),且最⾼bit位总为0,即ASCII码字符中的有真正意义的信息只是后⾯的7个低bit位,⽽传统的SMTP协议⼜是基于ASCII码字符设计的,因此,⼀些基于传统SMTP协议设计的SMTP服务器在处理邮件内容时只取出每个字节中的7个低bit位进⾏处理,⽽将最⾼bit位忽略不计。

显然,这样的SMTP服务器在处理包含有⾮ASCII码字符的邮件内容时,会出现严重的问题,这就限制了邮件中只能出现英⽂的ASCII码字符,⽽不能出现中⽂字符或⼆进制数据。

为了能够在邮件内容中包含中⽂、图像或声⾳等⾮ASCII字符的数据,⼈们想到了采⽤某种编码⽅式将⾮ASCII字符的数据转换成可打印的ASCII字符后再发送,邮件阅读程序则按照相应的解码⽅式从邮件中还原出原始数据即可,⽐较常⽤的两种邮件编码⽅式为BASE64和Quoted-printable。

后来的扩展SMTP协议允许直接在邮件中传递⼆进制数据,⽽不⽤对它们进⾏邮件编码,⼈们将这种没有进⾏邮件编码的⼆进制数据的邮件内容称为8bit编码,为了与此相区别,⼈们将没有进⾏邮件编码的纯ASCII码字符的邮件称为7bit编码。

MIME消息体的邮件编码⽅式通过MIME消息头中的Content- Transfer- Encoding头字段指定,每种邮件编码⽅式的介绍如下:— 7Bit指消息体内容全部是没有经过编码的ASCII字符。

— 8Bit指消息体内容是没有经过编码的原始数据,且其中包含有⾮ASCII字符的数据。

现在的邮件服务器基本上都⽀持8Bit编码,使⽤⽀持8Bit 编码的邮件服务器可以简化邮件的处理过程。

— BASE64Base64是将⼆进制数据转换成可打印的ASCII字符的⼀种最常见的编码⽅式,它的基本原理是将⼀组连续的字节数据按6个bit位进⾏分组,然后对每组数据⽤⼀个ASCII字符来表⽰。

计算机网络原理 多用途因特网邮件扩展(MIME)

计算机网络原理  多用途因特网邮件扩展(MIME)

计算机网络原理多用途因特网邮件扩展(MIME)前面我们学习SMTP发送程序,而在读取邮件过程中又分为两种协议。

一种是邮局协议第3个版本POP3和因特网报文存取协议IMAP。

邮局协议POP是一个非常简单、但功能有限的邮件读取协议。

邮局协议POP最初公布于1984年。

现在所使用的POP3是通过多次更新,也称为POP第三个版本。

它已经成为Internet的正式标准。

POP也使用客户服务器的工作方式。

在接收邮件的用户计算机中必须运行POP客户程序,而在用户所连接的ISP的邮件服务中则运行POP服务器程序以及SMTP服务器程序,以便接收发送方邮件服务器的SMTP客户程序发来的邮件。

POP服务器需要用户输入用户名和口令后才允许对邮箱进行读取。

在这里用户需要了解,邮件服务器只能向其邮件服务器传输电子邮件,而POP服务器除了传输电子邮件外还能向用户提供邮箱内容的信息。

POP3协议的特点是只要用户从POP服务读取邮件,POP服务器就将邮件删除。

下面我们来详细学习邮件扩展协议(MIME)。

Internet邮件扩展协议是RFC822框架结构的扩展,用于解决SMTP和RFC822传递电子邮件时遇到的问题和局限性。

1.MIME概述最初的Internet电子邮件系统只能处理文本,并且信息的主体被限制为ASCII字符,不能包含二进制数据。

但为了发送二进制数据,必须引进一些新的机制。

于是便产生了二进制数据编码成文本形式的方法,以方便这些数据在电子邮件信息中发送。

例如,使用十六进制表示,即数据中每4位映射为0~F中的一个字符。

然后在电子邮件信息中发送个字符序列,并由接收方将这些字符转换成二进制表示。

IETF为了协调和统一发送二进制数据而发明的多种编码方案,而推出了MIME。

MIME 协议定义了5个新报文报头字段,以提供与该报文主体相关的信息;定义了一些内容格式,将支持多媒体电子邮件表示方法标准化;定义了传送编码,使任何内容格式都能转化成一种受邮件系统保护而不被随意改变的格式。

MIME协议多用途互联网邮件扩展的标准

MIME协议多用途互联网邮件扩展的标准

MIME协议多用途互联网邮件扩展的标准MIME(Multipurpose Internet Mail Extensions)即多用途互联网邮件扩展,是一种应用于电子邮件的标准协议。

它的主要作用是扩展了传统的纯文本邮件,使电子邮件可以携带更多类型的数据,包括图像、音频、视频等文件格式。

本文将介绍MIME协议的起源、工作原理以及对互联网邮件系统的影响。

一、MIME协议的起源MIME协议最早由Nathaniel Borenstein和Ned Freed于1992年提出,目的是解决传统纯文本邮件无法携带多媒体文件的问题。

在起初的互联网时代,电子邮件只能发送纯文本内容,无法传输图片、音频和视频等媒体文件。

随着互联网的发展,人们对邮件内容的需求逐渐增加,MIME协议应运而生。

二、MIME协议的工作原理MIME协议通过在邮件头部添加额外的信息来标识邮件的内容类型和编码方式。

这些额外的信息被称为MIME头部信息,通常包括Content-Type、Content-Transfer-Encoding和Content-Disposition等字段。

其中,Content-Type用于指示邮件主体的数据类型,Content-Transfer-Encoding用于指定编码方式,而Content-Disposition则用于指定邮件主体的呈现方式。

MIME协议允许邮件主体以纯文本和HTML格式呈现,并支持多种文件类型的附件。

对于非文本文件,MIME协议会将它们编码成纯文本格式,以便在电子邮件传输过程中不会出现乱码或错误。

接收方的电子邮件客户端会根据MIME头部信息解析邮件内容,并以对应的方式展示给用户。

三、MIME协议对互联网邮件系统的影响MIME协议的引入极大地扩展了电子邮件的功能和应用场景。

通过MIME协议,用户可以通过邮件发送和接收各种类型的文件,如照片、音频文件和视频文件等。

这不仅提升了邮件的表现力,也方便了用户之间的信息交流。

MIME简介

MIME简介

Content-Transfer-Encoding: 7bit //编码方式:7位
Content-Description: cc:Mail note part
在用于浏览器时,用户不需要知道那么多的信息,所以MIME头就比较简单了。在访问一个网页时,浏览器和服务器之间产生一个会话,作为请求内容的一部分,浏览器发送它能够理解的MIME类型的描述,这就告诉服务器,浏览器除了网页外还可以支持什么,服务器对这个信息一般不作为什么修改。
MIME是服务器通知客户机传送文件是什么类型的主要方法,客户机浏览器也通过MIME告诉服务器它的参数。在网上,如果接收到的文件没有MIME头,就默认它为HTML格式。但这样也不好,因为当MIME的包头是text/plain时,浏览器将直接显示而不关心它的什么字体,颜色之类的参数,这样显示出来的内容可不是很好看呀。
服务器通过发向客户机的MIME头通知客户浏览器内容是什么,我们看看下面这个头:
Content-type: text/html
在实现的时候,一定要注意MIME头后要跟一个空行,不然这个头会被浏览器忽略,这个头会被当作文本显示出来。当服务器传送GIF图象时,头会如下:
Content-type: image/gif
Quoted-printable算法根据输入的字符串或字节范围进行编码,若是不需编码的字符,直接输出;若需要编码,则先输出''='',后面跟着以2个字符表示的十六进制字节值。
二、设计目标
我们计划开发一套MIME编码和解码的类,适用于可以想到的多种应用场合:
· Email客户端程序
· 乱码察看程序
Audio. 声音,用于标明声音文件。
Video. 影象,用于标明动画文件。

mime协议

mime协议

mime协议MIME 协议。

MIME(Multipurpose Internet Mail Extensions)是一种互联网标准,最初是为了解决电子邮件中的多媒体文件传输问题而设计的。

随着互联网的发展,MIME 协议已经被广泛应用于 Web 页面的传输、HTTP 协议中的数据交换、以及其他许多互联网应用中。

本文将介绍 MIME 协议的基本概念、作用和应用,以及在实际开发中的一些注意事项。

MIME 协议的基本概念。

MIME 协议是一种在互联网上传输多媒体文件的标准。

它通过在数据中添加一些描述性的信息(例如文件类型、编码方式等),使得接收方能够准确地识别和处理这些文件。

MIME 协议最初是为了解决电子邮件中的附件传输问题而设计的,但它的作用并不仅限于此,它也被广泛应用于 Web 页面的传输、HTTP 协议中的数据交换等方面。

MIME 协议的作用和应用。

MIME 协议的主要作用是在互联网上传输多媒体文件。

它通过在数据中添加一些描述性的信息,使得接收方能够准确地识别和处理这些文件。

MIME 协议定义了一种通用的文件格式描述方式,可以描述几乎所有类型的文件,包括文本、图像、音频、视频等。

这使得互联网上的不同应用能够以统一的方式处理各种类型的文件,极大地提高了文件传输的效率和可靠性。

在实际开发中的注意事项。

在实际开发中,开发人员需要注意以下几点:1.正确设置 MIME 类型,在开发 Web 页面或者其他互联网应用时,开发人员需要正确地设置文件的 MIME 类型。

这样可以确保浏览器或者其他客户端能够正确地识别和处理这些文件,从而提供更好的用户体验。

2.处理文件编码,在传输文件时,开发人员需要正确地处理文件的编码方式。

不同的文件可能需要使用不同的编码方式,开发人员需要根据文件的类型和具体要求来选择合适的编码方式。

3.处理文件的安全性,在接收和处理文件时,开发人员需要注意文件的安全性。

特别是在处理用户上传的文件时,开发人员需要进行严格的文件类型和内容检查,以防止恶意文件的传输和执行。

MIME协议及邮件格式分析

MIME协议及邮件格式分析

电子邮件也许是一个Internet上的流行最广泛的应用。

也是我们现在的大多数网络办公流程的基础。

各种邮件服务器很多,但都大都遵循以1982年出版的RFC822--《ARPA网络文本信息格式标准(STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES)》为基础的一系列邮件格式的规定。

RFC(The Requests for Comments)是用来规定互联网工作标准的文档。

我们使用的时候并没有注意到这些协议在我们的邮件通信过程中默默的发挥着的作用,这丝毫也不能减低这些作用的重要性。

邮件内部还有很多不为人知的秘密。

在RFC822中规定一封信包括一个必须的多个头部域(header fields)和一个可选的体部(body)组成。

从一封信头开始至第一个空行都是头部。

头部定义了一个邮件的各项基本要素,路由信息等内容。

在Outlook Express中选定一封信看它的属性。

在详细资料选项卡中显示的就是这封邮件的头部内容。

也可以选定一封信,另存为一个.eml文件。

由于文件是一个纯文本文件,用一般的编辑器打开就可以看到邮件的内容。

头部有各个头部域组成,每一个头部域都包括域名(field-name)和域体(field-body),它们之间以":"分隔。

每一个头部域都可以看作由ASCII码字符组成的独立的文本。

常见的头部域包括:"Return-Path", "Received", "Date", "From", "Subject", "Sender","To", "cc","MIME-Version"等。

各头部域之间没有规定顺序。

就像各个域的名字一样。

他们表示的具体意义也不同。

MIME协议简介

MIME协议简介

MIME协议简介MIME的编码介绍(base64)及使⽤的意义三MIME的头信息邮件头在邮件头中,有很多从RFC 822沿⽤的域名,MIME也增加了⼀些。

常见的标准域名和含义如下:域名含义添加者Received 传输路径各级邮件服务器Return-Path 回复地址⽬标邮件服务器Delivered-To 发送地址⽬标邮件服务器Reply-To 回复地址邮件的创建者From 发件⼈地址邮件的创建者To 收件⼈地址邮件的创建者Cc 抄送地址邮件的创建者Bcc 暗送地址邮件的创建者Date ⽇期和时间邮件的创建者Subject 主题邮件的创建者Message-ID 消息ID 邮件的创建者MIME-Version MIME版本邮件的创建者Content-Type 内容的类型邮件的创建者Content-Transfer-Encoding 内容的传输编码⽅式邮件的创建者⾮标准的、⾃定义域名都以X-开头,例如X-Mailer, X-MSMail-Priority等,通常在接收和发送邮件的是同⼀程序时才能理解它们的意义。

段头在段头中,⼤致有如下⼀些域:域名含义Content-Type 段体的类型Content-Transfer-Encoding 段体的传输编码⽅式Content-Disposition 段体的安排⽅式Content-ID 段体的IDContent-Location 段体的位置(路径)Content-Base 段体的基位置有的域除了值之外,还带有参数。

值与参数、参数与参数之间以“;”分隔。

参数名与参数值之间以“=”分隔。

1.MIME-Version 表⽰使⽤的MIME的版本号,⼀般是1.0;如:MIME-Version: 1.02.Content-TypeContent-Type定义了正⽂的类型,我们实际上是通过这个标识来知道正⽂内是什么类型的⽂件。

⽐如:text/plain 表⽰的是⽆格式的⽂本正⽂,text/html 表⽰的 Html ⽂档,image/gif 表⽰的是 gif 格式的图⽚等等。

邮件协议有哪些

邮件协议有哪些

邮件协议有哪些邮件协议是一种用于电子邮件传输的协议,它定义了电子邮件在发送和接收时所遵循的规则和标准。

邮件协议允许用户发送、接收和管理电子邮件,是实现电子邮件功能的重要基础。

本文将介绍一些常见的邮件协议。

1. SMTP(Simple Mail Transfer Protocol)SMTP是用于电子邮件传输的标准协议。

它定义了邮件的发送过程,包括邮件的格式、编码和传输的方式。

SMTP使用TCP/IP协议进行通信,通过建立与邮件服务器的连接来发送邮件。

SMTP是一种文本协议,使用ASCII码表示邮件内容。

优点•简单易用:SMTP采用简单的文本格式,容易实现和调试。

•可靠性高:通过使用错误检测和纠正技术,SMTP能够确保邮件的可靠传输。

缺点•安全性较低:SMTP协议并没有提供对邮件内容的加密和身份验证机制,容易被黑客窃取或篡改。

2. POP3(Post Office Protocol Version 3)POP3是一种用于接收邮件的协议。

它允许用户从邮件服务器上下载邮件到本地设备。

POP3使用TCP/IP协议进行通信,通过建立与邮件服务器的连接来接收邮件。

POP3支持在线和离线两种模式,用户可以选择是否保留邮件在服务器上。

优点•离线支持:POP3允许用户将邮件下载到本地设备,方便随时查看邮件。

•存储空间节省:一旦邮件下载到本地设备,就可以从服务器上删除,节省邮箱存储空间。

缺点•邮件同步问题:使用POP3下载邮件后,邮件将只存在于本地设备上,无法在多个设备上同步查看。

•安全性较低:POP3协议并没有提供对邮件内容的加密和身份验证机制,容易被黑客窃取或篡改。

3. IMAP(Internet Message Access Protocol)IMAP是一种用于接收和管理邮件的协议。

与POP3不同,IMAP在邮件服务器上保留了邮件的副本,并允许用户在多个设备上同步查看邮件。

IMAP同样使用TCP/IP协议进行通信。

MIME协议详解

MIME协议详解

3.2 MIME协议RFC822文档定义了邮件内容的主体结构和各种邮件头字段的详细细节,但是,它没有定义邮件体的格式,RFC822文档定义的邮件体部分通常都只能用于表述一段普通的文本,而无法表达出图片、声音等二进制数据。

另外,SMTP服务器在接收邮件内容时,当接收到只有一个“.”字符的单独行时,就会认为邮件内容已经结束,如果一封邮件正文中正好有内容仅为一个“.”字符的单独行,SMTP服务器就会丢弃掉该行后面的内容,从而导致信息丢失。

由于Internet的迅猛发展,人们已不满足于电子邮件仅仅是用来交换文本信息,而希望使用电子邮件来交换更为丰富多彩的多媒体信息,例如,在邮件中嵌入图片、声音、动画和附件。

但是,由于图片和声音等内容是非ASCII码的二进制数据,而RFC822邮件格式只适合用来表达纯文本的邮件内容,所以,要使用RFC822邮件格式发送这些非ASCII码的二进制数据时,必须先采用某种编码方式将它们“编码”成可打印的ASCII字符后再作为RFC822邮件格式的内容。

邮件阅读程序在读取到这种经过编码处理的邮件后,再按照相应的解码方式解码出原始的二进制数据,这样就可以借助RFC822邮件格式来传递多媒体数据了。

这种做法需要解决一下两个技术问题:(1)邮件阅读程序如何知道邮件中嵌入的原始二进制数据所采用的编码方式;(2)邮件阅读程序如何知道每个嵌入的图像或其他资源在整个邮件内容中的起止位置。

针对这个问题,人们后来专门为此定义了MIME(Multipurpose Internet Mail Extension,多用途Internet邮件扩展)协议。

MIME协议用于定义复杂邮件体的格式,它可以表达多段平行的文本内容和非文本的邮件内容,例如,在邮件体中内嵌的图像数据和邮件附件等。

另外,MIME协议的数据格式也可以避免邮件内容在传输过程中发生信息丢失。

MIME协议不是对RFC822邮件格式的升级和替代,而是基于RFC822邮件格式的扩展应用。

用于电子邮件的协议

用于电子邮件的协议

用于电子邮件的协议概述:用于电子邮件的协议是指在电子邮件传输和交换过程中所使用的协议和标准。

它们定义了邮件的格式、传输方式以及邮件客户端和邮件服务器之间的通信规则。

本文将介绍几种常见的用于电子邮件的协议。

1. SMTP(Simple Mail Transfer Protocol)SMTP是用于电子邮件传输的常见协议。

它定义了邮件的传输方式和规则,以确保邮件能够从发件人的邮件服务器传递到收件人的邮件服务器。

下面是SMTP协议的一些关键特点:•端口号: SMTP协议使用25号端口进行通信。

•邮件格式: SMTP协议规定了邮件的格式,包括邮件头部信息和正文内容。

•验证机制: SMTP协议支持身份验证,以确保邮件发送者的身份有效。

2. POP3(Post Office Protocol version 3)POP3是一种用于接收电子邮件的协议。

它允许用户从邮件服务器上下载邮件到本地计算机或移动设备上。

以下是POP3协议的一些关键特点:•端口号: POP3协议使用110号端口进行通信。

•邮件下载: POP3协议允许用户下载邮件到本地设备,并在下载后从服务器上删除邮件。

•离线访问:使用POP3,用户可以在没有网络连接的情况下阅读和管理已下载的邮件。

3. IMAP(Internet Message Access Protocol)IMAP是另一种用于接收电子邮件的协议。

与POP3类似,IMAP也允许用户从邮件服务器上下载邮件。

但IMAP在邮件管理和同步方面提供了更多的功能。

以下是IMAP协议的一些关键特点:•端口号: IMAP协议使用143号端口进行通信。

•邮件同步:使用IMAP,用户可以在多个设备上同步邮件,包括已读标记、文件夹结构等。

•远程搜索: IMAP支持在邮件服务器上进行远程搜索,以便快速找到特定的邮件。

4. MIME(Multipurpose Internet Mail Extensions)MIME是一种用于扩展电子邮件功能的协议。

mime协议

mime协议

mime协议MIME(多用途互联网邮件扩展)协议是一种在互联网上发送电子邮件时,用于允许发送和接收非纯文本文件的协议。

MIME协议在RFC 2045至RFC 2049中定义了一系列规范,用于扩展标准的SMTP(简单邮件传输协议)以支持多媒体邮件。

在早期的互联网上,电子邮件只能发送纯文本的消息。

然而,随着互联网的发展,人们迫切需要能够发送包含图像、音频、视频等多媒体文件的邮件。

于是,MIME协议应运而生。

MIME协议的主要目的是允许电子邮件中的消息部分包含非纯文本数据。

它通过定义邮件消息的结构来实现这一目标。

MIME协议将邮件消息划分为多个部分,每个部分可以包含不同类型的数据。

这些部分使用标记来标识其数据类型,这样接收方就可以理解消息的结构,并根据需要正确处理它们。

MIME协议支持多种数据类型,包括文本、图像、音频、视频等。

它通过使用标准的MIME类型来标识这些数据类型。

每个MIME类型都有一个唯一的标识符,用于告知接收方如何解析和显示该类型的数据。

例如,文本文件的MIME类型是"text/plain",图像文件的MIME类型可以是"image/jpeg"或"image/png"等。

MIME协议还引入了一种称为多部分消息的机制,用于将多个部分组合成一个邮件消息。

多部分消息使用特殊的边界字符串来分隔不同的部分,这样接收方就可以按顺序读取并正确解析每个部分。

每个部分都有自己的MIME类型和内容描述,以便接收方可以正确显示和处理它们。

除了定义邮件消息的结构以外,MIME协议还定义了编码机制,用于在非纯文本数据之间传输邮件消息。

由于SMTP只能传输ASCII字符,而非纯文本数据可能包含二进制数据,因此需要使用一种编码机制。

MIME协议定义了几种常用的编码机制,如Base64和Quoted-Printable。

这些编码机制将非纯文本数据转换为ASCII字符,以便在SMTP中传输。

MIME协议

MIME协议

MIME协议我们知道,现在的电⼦邮件已经基本上取代了传统的邮件。

电⼦邮件不仅可以⽤⽂字来叙述,还可以加载⾳乐图像等多媒体形式。

随着⽹络的不断⾰新,邮件也可以承载不同类型的⽂件进⾏传输。

这个就需要MIME协议的⽀持了。

多⽤途⽹际邮件扩充协议(MIME)是 Multipurpose Internet Mail Extensions 的缩写,说明了如何安排消息格式使消息在不同的邮件系统内进⾏交换。

MIME 的格式灵活,允许邮件中包含任意类型的⽂件。

MIME 消息可以包含⽂本、图象、声⾳、视频及其它应⽤程序的特定数据。

具体来说,MIME 允许邮件包括:单个消息中可含多个对象;⽂本⽂档不限制⼀⾏长度或全⽂长度;可传输 ASCII 以外的字符集,允许⾮英语语种的消息;多字体消息;⼆进制或特定应⽤程序⽂件;图象、声⾳、视频及多媒体消息。

MIME协议复合消息的⽬录信头设有分界标志,这个分界标志绝不可出现在消息的其它位置,⽽只能是在各部之间以及消息体的开始和结束处。

MIME协议的安全版本 S/MIME(Secure/Multipurpose Internet Mail Extensions)设计⽤来⽀持邮件的加密。

基于 MIME 标准,S/MIME 为电⼦消息应⽤程序提供如下加密安全服务:认证、完整性保护、鉴定及数据保密等。

传统的邮件⽤户代理(MUA)可以使⽤ S/MIME 来加密发送邮件及解密接收邮件。

然⽽,S/MIME 并不仅限于邮件的使⽤,它也能应⽤于任何可以传送 MIME 数据的传输机制,例如 HTTP。

同样,S/MIME 利⽤ MIME 的⾯向对象特征允许在混合传输系统中交换安全消息。

此外,S/MIME 还可应⽤于消息⾃动传送代理,它们使⽤不需任何⼈为操作的加密安全服务,例如软件⽂档签名、发送到⽹上的 FAX 加密等。

MIME协议结构MIME邮件头字段定义如下:实体头:=[⽬录CRLF][编码CRLF][ID CRLF][描述CRLF]*(MIME扩展字段CRLF)MIME消息头:=实体头字段CRLF版本在BNF定义中声明的消息头字段顺序应该忽略;MIME局部头:=实体头[字段]不从“⽬录”开始的任何字段没有具体含义,可忽略。

常用的邮件发送协议

常用的邮件发送协议

常用的邮件发送协议常用的邮件发送协议随着互联网的不断发展,电子邮件已成为人们日常生活中不可或缺的一部分。

而邮件的发送则需要使用到邮件发送协议。

在本文中,将会按类别介绍几种常用的邮件发送协议。

1. SMTP(Simple Mail Transfer Protocol)SMTP是最常用的邮件发送协议之一。

它是一种基于TCP/IP的协议,用于传输电子邮件。

使用SMTP,用户可以将邮件发送到一个或多个接收邮件服务器。

这个协议能够为用户提供一种有效的可靠性,使得邮件能够成功发送和接收。

SMTP大多数情况下用于发送邮件,无法接收邮件。

2. POP3(Post Office Protocol 3)POP3是一种用于从邮件服务器接收邮件的协议。

当用户使用电子邮件客户端往往就是基于POP3协议的。

POP3使用TCP/IP协议来建立与服务器的连接,然后用户可通过登录身份验证来接收邮件,这些邮件会被下载到用户本地计算机中。

3. IMAP(Internet Message Access Protocol)IMAP也是一种从邮件服务器接收邮件的协议。

它与POP3的主要区别在于,IMAP还提供了对邮件服务器的支持,使得用户不仅可以在本地查看邮件,还可以通过webmail界面从任何地方查看邮件。

此外,IMAP支持多个客户端同时访问同一邮箱。

4. HTTP(Hypertext Transfer Protocol)虽然HTTP本身并不是专为邮件发送而设计的协议,但现在许多webmail客户端都是基于HTTP协议。

通过使用HTTP协议,用户可以通过支持该协议的浏览器来访问邮件。

此外,与IMAP一样,HTTP还允许多个客户端同时访问一个邮箱,因此,基于HTTP的webmail无疑是一种广泛使用的邮件发送协议。

5. MIME(Multipurpose Internet Mail Extensions)MIME是一种在电子邮件中传输多种类型的数据的标准。

MIME协议的内容分析及解析说明

MIME协议的内容分析及解析说明

MIME协议的内容分析及解析说明作者:李鹏博时间:2016/06一、MIME协议说明MIME, 全称为“Multipurpose Internet Mail Extensions”, 比较确切的中文名称为“多用途互联网邮件扩展”。

它是当前一种电子邮件技术规范。

MIME不是一种传输协议,而是一种编写规范,常常建立在SMTP协议、HTTP 协议等之上。

二、MIME协议的使用场景MIME协议可以在SMTP基础上,使得邮件可以传输任意二进制文件,广泛用在邮件源码的编写规范上。

除此之外,MIME协议可以在HTTP协议基础上通过POST方法上传附件,有很多站点是使用该协议完成,如SOHU邮箱、263邮箱、QQ邮箱(部分)等。

三、MIME协议包头内容说明及解析以下,将统一名词为:boundary(节)、Content-Type(内容类型)。

1.建立在SMTP协议上的邮件编码关于SMTP协议的说明请参见《简析SMTP协议》,此处主要说明客户端向服务器请求发送DATA之后,整个DATA包体(或一封邮件本身的编码)。

邮件源码查看方式如下,在邮件客户端右击选择“更多操作”->“查看邮件源码”即可。

以上,是一封简单邮件的包头信息,其中关键字说明如下:关于出现汉字,上述示例邮件并未出现汉字,如果出现汉字,就会出现对其编码的现象,比如,这种情况就需要将=?GB2312?B?与?=之间的内容拿出来进行BASE64解码。

这种情况出现在主题、文件名等位置。

关于Content-Type,Content-Type也是个很重要的关键字,他是该包体内容类型的说明。

可能出现的有很多,常用的有:multipart/related;multipart/mixed; multipart/alternative;等。

其中,multipart/alternative出现说明邮件中无附件且只有文字信息;multipart/related出现则说明无附件有文字信息和图片信息;multipart/mixed出现这说明邮件存在附件。

电子商务安全协议

电子商务安全协议

电子商务安全协议引言随着互联网的迅猛发展,电子商务在全球范围内得到了广泛应用和推广。

然而,电子商务中的数据交换和在线支付等活动的安全性问题也随之增长。

为了确保电子商务的安全性和可靠性,各方需要遵守一定的安全协议和措施。

本文将介绍常用的电子商务安全协议,以及它们的工作原理和应用场景。

1. SSL/TLS(安全套接层/传输层安全)SSL/TLS是目前最常用的电子商务安全协议之一。

它通过加密通信和认证服务,确保了数据在传输过程中的安全性。

SSL/TLS使用了公钥加密和对称密钥加密相结合的方式,保证了数据传输的机密性和完整性。

在电子商务中,SSL/TLS通常用于网站的加密连接和用户身份验证,防止数据被第三方窃取或篡改。

SSL/TLS的工作原理是,服务器使用公钥加密算法生成一对公私钥,并将公钥向证书颁发机构(CA)申请证书。

用户在访问网站时,服务器将证书发送给用户,并由用户的浏览器进行验证。

验证通过后,浏览器随机生成一个对称密钥,并使用服务器的公钥加密该对称密钥,并发送给服务器。

服务器接收到加密后的对称密钥后,使用私钥进行解密,并建立对称密钥加密的安全通道。

SSL/TLS协议的应用场景包括网上银行、电子商务网站和在线支付等。

它能够有效防止第三方对数据进行窃取和篡改,保障用户的隐私和个人信息的安全。

2. S/MIME(安全多用途Internet邮件扩展)S/MIME是一种用于保护电子邮件的安全协议。

它通过数字签名和加密技术,防止电子邮件在传输和存储过程中被篡改或窃取。

S/MIME为电子邮件提供了机密性、完整性和身份验证功能。

在使用S/MIME发送邮件时,发件人使用自己的私钥对消息进行加密和签名,然后发送给收件人。

收件人可以使用发件人的公钥进行解密和验证签名,确保邮件的机密性和完整性。

S/MIME还支持用户的数字证书,用于身份验证。

S/MIME常用于电子商务中的邮件通信,特别是在交换敏感信息或重要文件时,如订单信息、产品报价等。

电子邮件的传输协议

电子邮件的传输协议

电子邮件的传输协议1. 引言电子邮件是现代人们日常生活中不可或缺的通信工具之一。

它可以实现在不同地点、不同时间的人们之间传递信息。

而要实现电子邮件的传输,就需要依赖于一种特定的协议。

本文将介绍电子邮件的传输协议,探讨其原理、功能和主要的标准。

2. 电子邮件的基本原理电子邮件的传输协议可以简单地理解为一种规定了邮件传输过程中数据格式、传输方式和通信规则的约定。

邮件传输涉及到多个环节,包括发送邮件、接收邮件、中转邮件等。

传输协议的作用就是确保邮件能够在各个环节中正确、可靠地传递。

3. 电子邮件传输协议的分类3.1. SMTP协议SMTP(Simple Mail Transfer Protocol)是目前最常用的电子邮件传输协议之一。

它定义了邮件的发送过程,包括连接到邮件服务器、提供认证信息、设置邮件标题和内容等步骤。

SMTP协议使用TCP协议作为传输层协议,确保邮件的可靠传输。

3.2. POP3协议POP3(Post Office Protocol Version 3)是一种用于接收邮件的协议。

它允许用户从邮件服务器上下载邮件到本地计算机,并在下载后将邮件从服务器上删除。

POP3协议使用TCP协议,通过指定的端口连接到邮件服务器,并使用用户名和密码进行身份验证。

3.3. IMAP协议IMAP(Internet Message Access Protocol)是一种与POP3类似的接收邮件的协议。

IMAP协议提供了更多的功能和灵活性,允许用户在不同设备上同步邮件的状态、管理文件夹、搜索邮件等。

IMAP协议也使用TCP协议进行通信,并使用特定的端口连接到邮件服务器。

3.4. MIME协议MIME(Multipurpose Internet Mail Extensions)是一种扩展邮件传输协议的标准。

它允许邮件中包含非纯文本的内容,如图片、音频、视频等。

MIME协议通过在邮件头部添加特定的标记,将非文本数据以合适的方式嵌入到邮件中。

mimeutility decodetext -回复

mimeutility decodetext -回复

mimeutility decodetext -回复【MimeUtility decodetext】是一个用于解码文本的MIME实用工具。

MIME(Multipurpose Internet Mail Extensions)是一种网络协议,用于将非ASCII 字符数据编码为ASCII 字符串,以便在网络上进行传输。

MIME实用工具是解码这些编码数据的工具之一,它提供了一种方法来还原编码后的文本数据。

在本文中,我将逐步解释MimeUtility decodetext 的工作原理和使用方法。

首先,我们需要了解编码的原理。

在MIME编码中,非ASCII 字符(如中文、日文等)需要被转换为ASCII 字符,以便在网络上传输。

其中,最常用的编码方式是Base64编码和Quoted-Printable编码。

Base64编码是一种将二进制数据转换为可打印ASCII字符的方法。

它将数据拆成固定长度的块,然后将每个块转换为ASCII字符。

这样做的好处是可以确保数据在传输过程中不会被篡改或丢失。

Quoted-Printable编码是一种将非ASCII 字符转换为ASCII 字符的方法。

它通过将非ASCII 字符转换为其ASCII值的十六进制表示,并加上一个"="符号,将转换后的字符嵌入到文本中。

这样可以确保数据在传输过程中的完整性和可读性。

现在,我们可以开始解码文本了。

首先,需要使用MimeUtility类的decodetext方法。

这个方法接受一个参数,即要解码的文本字符串。

解码过程分两步进行。

首先,将文本字符串按照RFC822规范进行解析,将每个编码段提取出来。

然后,根据编码的类型(Base64或Quoted-Printable),对每个编码段进行解码,最后将解码后的结果拼接起来,形成最终的解码文本。

具体而言,对于Base64编码,解码过程如下:首先,将文本字符串按照指定的编码格式(一般为UTF-8)转换为字节数组。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MIME协议分析第1章MIME概述MIME, 全称为“Multipurpose Internet Mail Extensions”, 比较确切的中文名称为“多用途互联网邮件扩展”。

它是当前广泛应用的一种电子邮件技术规范,基本内容定义于RFC 2045-2049(注意RFC1521和RFC1522是它的过时版本)。

MIME试图在不改变SMTP协议和RFC822(邮件格式标准)的基础上,使得邮件可以传送任意二进制文件。

为此,它在这些协议之上,采取了一些措施,这就是我们下面所要重点讲述的内容。

第2章MIME详解2.1 改进措施一封邮件包括信封、邮件头和邮件体等三个部分。

信封显然可以不含有二进制信息,而其它两部分则可能包含任意二进制序列,因此需要加以改进。

MIME正是抓住了这两个地方来对他们加以改进。

1)新增了一些邮件头信息,用来协商MIME的一些参数。

2)定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。

3)定义了传送编码,从而可以传送任意二进制文件。

在这里,我还是要不厌其烦地强调指出,所有的改进措施都是建立在不改变原来的SMTP协议和RFC822的基础上的。

事实上,我们可以把这些改进措施,看成是在用SMTP 等发送邮件前所采取的预处理。

2.2 一封简单邮件的源码为了对MIME邮件有个直观的了解,先给出一封简单邮件的源码。

源码中,行号和行号后的空格是为了分析方便而另外加的,“... ... ... ...”表示此处省略了大段编的原始编码。

例如在Foxmail中,选定邮件后,单击右键,选择“原始信息”项即可。

至于源码的具体意思则正是后续内容所要讲的。

2.3 邮件头2.3.1邮件头的域邮件头包含了发件人、收件人、主题、时间、MIME版本、邮件内容的类型等重要信息。

每条信息称为一个域,由域名后加“: ”和信息内容构成,可以是一行,较长的也可以占用多行。

域的首行必须“顶头”写,即左边不能有空白字符(空格和制表符);续行则必须以空白字符打头,且第一个空白字符不是信息本身固有的,解码时要过滤掉。

如例2的7-8行分别属于一个域。

表 1中给出了邮件头中常见的域,域的含义,和域值的添加者。

在接收和发送邮件的是同一程序时才能理解它们的意义。

除了后面两个域外,其他的域的意思很明了,所以下面只对后两个域做解释。

2.3.2 Content-Type域Content-Type域,即内容类型域,它用来说明传输的内容的类型。

Cotent-Type域又由“主类型/子类型”构成,主类型有text, image, audio, video, application, multipart, message等,分别表示文本、图片、音频、视频、应用、分段、消息等。

每个主类型都可能有多个子类型,如text类型就包含plain, html, xml, css等子类型。

以X-开头的主类型和子类型,同样表示自定义的类型,未向IANA正式注册,但大多已经约定成俗了。

如application/x-zip-compressed是ZIP文件类型。

在Windows 中,注册表的“HKEY_CLASSES_ROOT/MIME/Database/Content Type”内列举了除multipart之外大部分已知的Content-Type。

各种各种类型一般都可以带参数。

至于参数的形式,RFC里有很多补充规定,有的2.3.3 Content-Transfer-Encoding域Content-Transfer-Encoding域即传送编码域,它用来说明后面传输的内容的编码方式。

Content-Transfer-Encoding共有Base64, Quoted-printable, 7bit, 8bit, Binary等几种。

其中7bit是缺省的编码方式。

电子邮件源码最初设计为全部是可打印的ASCII码的形式。

非ASCII码的文本或数据要编码成要求的格式,如上面的三个例子。

Base64,Quoted-Printable是在非英语国家使用最广使的编码方式。

Binary方式只具有象征意义,而没有任何实用价值。

关于Base64编码和Quoted-Printable编码请参考RFC文档或另外一篇文章《SMTP协议分析》。

近年来,国内多数邮件服务器已经支持8bit方式,因此只在国内传输的邮件,特别是在邮件头中,可直接使用8bit编码,对汉字不做处理。

如果邮件要出国,还是老老实实地按Base64或Quoted-printable编码才行2.4 邮件体邮件体的类型由邮件头的“Content-Type”域指出。

常见的简单类型有text/plain(纯文本)和text/html(超文本)。

源码中出现的multipart类型,是MIME邮件的精髓。

邮件体被分为多个段,每个段又包含段头和段体两部分,这两部分之间也以空行分隔。

常见的multipart类型有三种:multipart/mixed, multipart/related和multipart/alternative。

从它们的名称,不难推知这些类型各自的含义和用处。

它们之间的层次关系可归纳为图 1所示+------------------------- multipart/mixed ----------------------+ | +----------------- multipart/related -------------+ | | | | | | | | | | | +----multipart/alternative ---+ +----------+ | +------+| | | | | | 内嵌资源 | | | 附件 || | | | +-----------+ +----------+ | +----------+ | +------+ | | | | | 纯文本正文| |超文本正文| | | || | | +-----------+ +----------+ | +----------+ | +------+ || | | | | 内嵌资源 | | | 附件 || | | +-----------------------------+ +----------+ | +------+|| | || | +-------------------------------------------------+|+-----------------------------------------------------------------+图错误!未定义书签。

邮件体的层次关系图可以看出,如果在邮件中要添加附件,必须定义multipart/mixed段;如果存在内嵌资源,至少要定义multipart/related段;如果纯文本与超文本共存,至少要定义multipart/alternative段。

什么是“至少”?举个例子说,如果只有纯文本与超文本正文,那么在邮件头中将类型扩大化,定义为multipart/related,甚至multipart/mixed,都是允许的。

multipart诸类型的共同特征是,在段头指定“boundary”参数字符串,段体内的每个子段以此串定界。

所有的子段都以“--”+boundary行开始,父段则以“--”+boundary+“--”行结束。

段与段之间也以空行分隔。

在邮件体是multipart类型的情况下,邮件体的开始部分(第一个“--”+boundary行之前)可以有一些附加的文本行,相当于注释,解码时应忽略。

段间也可以有一些附加的文本行,不会显示出来,如果有兴趣,不妨验证一下。

结合boundary定界和multipart层次关系图,我们分析一下源码中的邮件体层次与段嵌套关系。

在源码中,10-12行是附加文本行,13-82行是multipart/alternative 型的段,包含两个子段:13-30行是纯文本正文,32-79行是超文本正文。

需要补充说明地是,构成邮件体的各段有自己的属性,这些属性由段头的域来说明。

表 3给出了段头中常见的域。

域名含义Content-Type 段体的类型Content-Transfer-Encoding 段体的传输编码方式Content-Disposition 段体的安排方式Content-ID 段体的IDContent-Location 段体的位置(路径)Content-Base 段体的基位置表 3 段头中常见的域各域的含义与邮件头中同名的域的含义一样,只是前者的作用域为段,而后者的作用域为整个邮件体。

第3章常见的疑问3.1 如何得到MIME邮件的源码在一些些功能比较完善的邮件客户端软件,如微软的Outlook Express,国产的Foxmail等,都提供了查看和保存邮件源码(原始信息)的功能。

在Foxmail中,选择邮件,单击右键,选择“原始信息”菜单项可查看到邮件的源码。

第4章分析方案因为MIME是一种电子邮件规范,所以被广泛用在其他协议中。

如SMTP和POP3协议中所谓的邮件就大部分遵循MIME邮件规范。

所以虽然功能需求表中未对MIME作出要求,但当我们想要从SMTP或POP3通信等中提取有效信息时,我们不得不了解MIME协议(因为提取到的邮件信息是符合MIME规范的)。

当我们得到了SMTP或POP3通信中的MIME信息后,只需对其进行简单的MIME解码就可得到发送的原始信息。

第5章参考资料[1] /article/18/18448.shtm [Online][2] RFC文档:RFC821对应SMTP协议,RFC822对应邮件标准,RFC1425对应ESMTP,RFC1939对应POP3协议,RFC2045-RFC2049对应MIME协议的基本内容。

[3] /rfcs/,上面有全面的英文RFC文档[4] /,上面有不少有用的协议分析文档,也有中文RFC文档,但质量不是特别高[5] Stevens, W.R., TCP/IP Illustrated, Vol1. Addision-Wesley, 机械工业出版社,2002。

相关文档
最新文档