电子邮件_电子邮件系统 - CSDN
精华内容
参与话题
  • 电子邮件工作原理

    万次阅读 2014-02-06 22:26:05
     SMTP 是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议。SMTP 是建立在 TCP上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。SMTP主要负责底层的邮件系统如何将邮件从一台...

    一、三种协议

    1. SMTPSimple Mail Transfer Protocol

      SMTP 是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议。SMTP 是建立在 TCP上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。SMTP主要负责底层的邮件系统如何将邮件从一台机器传至另外一台机器。

    2. POPPost Office Protocol

      目前的版本为POP3,POP3是把邮件从电子邮箱中传输到本地计算机的协议。  

    3. IMAPInternet Message Access Protocol

      目前的版本为IMAP4,是POP3的一种替代协议,提供了邮件检索和邮件处理的新功能,这样用户可以完全不必下载邮件正文就可以看到邮件的标题摘要,从邮件客户端软件就可以对服务器上的邮件和文件夹目录等进行操作。IMAP协议增强了电子邮件的灵活性,同时也减少了垃圾邮件对本地系统的直接危害,同时相对节省了用户察看电子邮件的时间。除此之外,IMAP协议可以记忆用户在脱机状态下对邮件的操作(例如移动邮件,删除邮件等)在下一次打开网络连接的时候会自动执行。  

     二、工作原理

        下面以sinasohu这两个电子邮局为例来讲解电子邮件的传输过程和工作原理。假设sina邮箱的账户为lisi@sina.comsohu邮箱的账户为wangwu@sohu.com,它们之间的邮件收发过程如下图所示:

        

    图中实线部分表示lisi@sina.com账户向wangwu@sohu.com账户发送邮件的过程,虚线部分表示wangwu@sohu.com账户向lisi@sina.com账户发送邮件的过程。下面通过分析lisi@sina.com账户向wangwu@sohu.com账户发送邮件的过程,来具体讲解一封邮件从发送到接收所涉及的环节。 

       

    lisi@sina.com的邮件客户端程序(这里假设为Outlook Express)与sinaSMTP服务器建立网络连接,并以lisi的用户名和密码进行登录后,使用SMTP协议把邮件发送给sinaSMTP服务器。

     

      sinaSMTP服务器收到lisi@sina.com提交的电子邮件后,首先根据收件人的地址后缀判断接收者的邮件地址是否属于该SMTP服务器的管辖范围,如果是的话就直接把邮件存储到收件人的邮箱中,否则,sinaSMTP服务器向DNS服务器查询收件人的邮件地址后缀(sohu.com)所表示的域名的MX记录,从而得到sohuSMTP服务器信息,然后与sohuSMTP服务器建立连接并采用SMTP协议把邮件发送给sohuSMTP服务器。

        

    sohuSMTP服务器收到sinaSMTP服务器发来的电子邮件后,也将根据收件人的地址判断该邮件是否属于该SMTP服务器的管辖范围,如果是的话就直接把邮件存储到收件人的邮箱中,否则(一般不会出现这种情况),sohuSMTP服务器可能继续转发这封电子邮件,也可能丢弃这封电子邮件。

     

      拥有wangwu@sohu.com账户的用户通过邮件客户端程序(这里假设也为Outlook Express)与sohuPOP3/IMAP服务器建立网络连接,并以wangwu的用户名和密码进行登录后,就可以通过POP3IMAP协议查看wangwu@sohu.com邮箱中是否有新邮件,如果有的话,则使用POP3IMAP协议读取邮箱中的邮件。

     

      图中的虚线部分表示wangwu@sohu.com账户向lisi@sina. com账户发送邮件的过程,此过程与lisi@sina.com账户向wangwu@ sohu.com账户发送邮件的过程类似,这里不再复述。

     

       邮件客户端软件与SMTP服务器之间,以及两台SMTP服务器之间都采用SMTP协议进行通信。邮件客户端软件只采用SMTP协议发送邮件,即邮件客户端软件只作为SMTP协议的发送方。SMTP服务器既要采用SMTP协议向其他SMTP服务器发送邮件,又要采用SMTP协议接收其他SMTP服务器或邮件客户端软件发送来的邮件,即SMTP服务器既作为SMTP协议的发送方,又作为SMTP协议的接收方。邮件客户端软件与SMTP服务器都可以使用SMTP协议发送邮件,仅发送邮件这一功能而言,它们在技术实现上有何差异呢?它们的差异主要体现在以下两个方面:

        

       (1SMTP服务器接收到邮件客户端软件发送来的邮件后,需要根据收件人地址的域名将邮件转发给目标域的SMTP服务器,而大量的收件人地址中肯定会出现各种可能的域名,因此,SMTP服务器涉及到要与其他多台不能事先确定的SMTP服务器进行通信,它需要具有根据收件人地址的域名查询出该域的SMTP服务器的功能,即需要具有查询域名的MX记录的功能。邮件客户端软件被设置为与固定的SMTP服务器通信,它可以直接与指定的SMTP服务器建立网络连接,因此它不需要具有根据收件人地址的域名来查询该域的SMTP服务器的功能。

        

       (2)对于来自某个邮件客户端软件的邮件传输请求,SMTP服务器可能需要对发件人的用户账号信息进行验证,因此,邮件客户端软件需要具有向SMTP服务器传送用户账号信息的功能。SMTP服务器能够直接接受来自其他SMTP服务器的邮件传输请求,因此,SMTP服务器在发送邮件时根本不需要传送用户账号信息的功能。 

    三、什么是MX记录

       在DNS服务器上除了可以建立主机名与IP地址的映射外,还可以建立其他多种映射,例如,建立某个主机名与其别名的映射;建立某个域名与其SMTP服务器的映射。在DNS服务器上创建的各项映射关系称为记录,一项映射关系就是一条记录,在DNS服务器上创建的主机名与IP地址的映射关系称为A记录,主机名与别名的映射关系称为CNAME记录,域名与其SMTP服务器的映射关系称为MX记录。

       在DNS服务器上为什么要建立MX记录呢?即为什么要建立域名与其SMTP服务器的映射关系呢?这与电子邮件地址的表示形式和工作原理有关。邮件地址后缀部分表示的通常都是一个域名,而不是接收邮件的服务器的主机名,例如,邮件地址“zxx@it315.org”中的“it315.org”对应的就是一个域名。域只是一个逻辑组合概念,它并不代表真正的计算机,对于使用某个域名作为后缀的邮件地址,外界发送给它的电子邮件必须由一台专门的SMTP服务器来进行接收和处理,接收和处理某个域的电子邮件的SMTP服务器即为该域的SMTP服务器,外界发送给某个域的电子邮件实际上都是发送给该域的SMTP服务器。外界如何知道一个域的SMTP服务器的地址呢?这就是通过管理该域的DNS服务器上的MX记录来获得的,这也就是在DNS服务器上为什么要建立域名与其SMTP服务器的映射关系的原因。

       当某台SMTP服务器要给“zxx@it315.org”发送一封电子邮件时,该SMTP服务器将根据邮件地址的后缀部分而去查询“it315.org”这个域的MX记录,得到这个域的SMTP服务器的主机名为“mail.it315.org”,然后将邮件发送给“mail.it315.org”这个SMTP服务器。

     

    说明:以上内容来源于网络

    展开全文
  • 44、电子邮件之一(应用层)

    千次阅读 2019-04-16 13:19:37
    在整个20 世纪90 年代,它变得普及起来并呈指数形式增长,以至于现在每天发送的电子邮件数量远远超过了传统的纸质邮件( snail mail )数量。其他形式的网络通信,比如即时消息和IP语音在近10...

    引言

    • 电子邮件或者更常用的E-mail,己经存在30 多年了(不止了)。由于比纸质信件更快更便便宜,电子邮件成为自早期Internet 出现以来最广泛的应用。在1990 年以前,它主要被用于学术界。在整个20 世纪90 年代,它变得普及起来并呈指数形式增长,以至于现在每天发送的电子邮件数量远远超过了传统的纸质邮件( snail mail )数量。其他形式的网络通信,比如即时消息和IP语音在近10 年也有了极大的发展,但是电子邮件仍然是Internet 通信的主要负载。电子邮件广泛地用于业界公司内部的通信,例如,分散在世界各地的员工们就一个复杂项目进行协同。不幸的是,像纸质信件一样,大多数电子邮件都是邮寄宣传品或者垃圾邮件(spam),某些甚至10 封邮件里面高达9 封是垃圾邮件( McAfee, 2010 )。
    • 与大多数其他通信方式一样,电子邮件有它自己的约定和风格。特别是它非常不拘小节,使用户门槛很低。那些从来没有梦想过给某个大人物打一个电话或者写一封信的人,可以毫不犹豫地给他发一封随意书写的电子邮件。由于消除了与社会地位、年龄和性别有关的大多数暗示,通过电子邮件展开辩论通常关注于内容本身而不是状态。有了电子邮件,某个暑期学生的绝妙想法比一个执行副总裁的愚钝想法影响力更大。电子邮件中充满了诸如BTW (By The Way ,顺便)、ROTFL C Rolling On The Floor Laughing,笑得满地打滚)和IMHO(ln My Humble Opinion,恕我直言)等行话。很多人还在他们的电子邮件中使用一些称为微笑图标( smiley )的ASCII 符号,这种符号始于普适的“:-)”。这种符号和其他情绪图标(emoticon )有助于传递邮件语气,现在它们已经被扩散到其他形式的通信中,比如即时消息。
    • 电子邮件协议在其使用期间经历了很大的演变。第一个电子邮件系统简单地由文件传输协议和约定组成,约定规定每个邮件的第一行(即文件)必须给出收件人地址。随着时间的推移,文件传输和电子邮件分歧越来越大,最终电子邮件从文件传输中分离出来并增加了许多功能,例如发送一个邮件给一组收件人的能力。在20 世纪90 年代,多媒体功能变得非常重要,邮件可以包括图像和其他非文字材料。相应地,阅读电子邮件的程序也变得更为复杂,从单纯的基于文本阅读转变成图形用户界面,.并且为用户增加了在任何地方通过笔记本电脑访问邮件的能力。最后,随着垃圾广告邮件的盛行,邮件阅读器和邮件传输协议现在必须具备发现这些不想要的邮件并删除它们的能力。在我们的电子邮件描述中,我们将精力集中在用户之间如何移动邮件,而没有考查和体验邮件阅读程序。然而,在描述了整体架构后,我们将开始介绍电子邮件系统中面向用户的那一部分。

    1、体系结构

    • 在本节将概述,说明电子邮件系统如何组织以及它们可以做什么。电子邮件系统的体系结构如图所示。它包括两类子系统:用户代理( user agent )和邮件传输代理( message transfer agent )。人们通过用户代理阅读和发送电子邮件:邮件传输代理负责将用户邮件从源端移动到目的地。我们把邮件传输代理非正式地称为邮件服务器。在这里插入图片描述
    • 用户代理是一个程序,用户通过它与电子邮件系统交互。用户代理提供了一个图形界面,有时是一个基于文本和基于命令的接口。它包括了撰写邮件、回复邮件、显示入境邮件信息的手段,同时还提供了如何过滤、搜索和删除邮件的组织方式。把新邮件发送给邮件系统,并通过它传递的行为称为邮件提交( mail submission )。
    • 有些用户代理可能会自动完成对邮件的处理,预测用户想要什么。例如,为了提取出或者降低可能是垃圾邮件的优先级,入境邮件可能会先被过滤。某些用户代理还包括一些先进功能,比如安排电子邮件的自动回复(“现在我正在度一个美妙假期,一旦我回去将立即给你回复")。用户代理运行在用户阅读邮件的同一台计算机上。这只是另一个程序,而且或许只运行一段时间。邮件传输代理通常是系统进程。它们运行在邮件服务器机器的后台,并始终保持运行状态。它们的工作是通过系统自动将电子邮件从发送端移动到收件人,采用的协议是简单邮件传输协议( SMTP, Simple Mail Transfer Protocol )。
    • SMTP 最早由RFC 821 说明,之后被修订成为当前的RFC 53210 它通过一个连接发送邮件、返回传递状态和任何错误的报告。对许多应用来说,确认交付非常重要,甚至可能具有法律上的意义(“哦,先生,我的电子邮件系统没那么可靠,所以我猜测电子传票可能遗失在某个地方了”)。邮件传输代理还实现了邮件列表( mailing list)功能,一个邮件的完全相同副本被传递到电子邮件地址列表中的每个人。其他先进的功能包括抄送、秘密抄送、高优先级电子邮件、秘密(即加密)电子邮件:如果主要收件人当前不方便接收邮件,那么可指定另一个接收者,以及阅读老板邮件并代替回复邮件的辅助能力。
    • 将用户代理和邮件传输代理衔接起来的是邮箱这个概念,以及电子邮件的标准格式。邮箱( mailbox)存储用户收到的电子邮件。邮箱由邮件服务器负责维护,用户代理只需向用户展示邮箱中的内容即可。要做到这一点,用户代理向邮件服务器发送操纵邮箱的命令,包括检查邮箱内容、删除邮件等。邮件检索在图中是最后交付(第3 步)。在这样的体系结构下,一个用户可以在多台计算机上使用不同的用户代理来访问同一个邮箱。在两个邮件传输代理之间发送的邮件具有标准的格式。原来由RFC 822 规定的格式被修订为当前的RFC5322 ,并且扩展成支持多媒体内容和国际文本。这个方案称为MIME。
    • 电子邮件系统的一个关键思想是将信封( envelope )与邮件内容区分开来。信封将消息封装成邮件,它包含了传输消息所需要的所有信息,例如目标地址、优先级和安全等级,所有这些都有别于消息本身。消息传输代理根据信封来进行路由,就好像邮局的做法一样。信封内的消息由两部分组成:邮件头( header)和邮件体( body )。邮件头包含用户代理所需的控制信息。邮件体则完全提供给收件人,代理和邮件传输代理都不在意邮件体包含了什么信息。下面,我们按照一个用户给另一个用户发送电子邮件涉及的每个步骤,来详细考查这种体系结构下的每个组成部分。这个考查之旅就从用户代理开始。

    2、用户代理

    • 用户代理是一个程序(有时也称为电子邮件阅读器),它接收各种各样命令,从接收和回复邮件到操纵邮箱的命令。目前流行的用户代理有许多,其中包括谷歌Gmail 、微软的Outlook、Mozilla 的Thunderbird 和苹果的Apple Mailo 这些用户代理在外形上相差很大。大多数用户代理有一个菜单或图标驱动的图形界面,需要使用鼠标进行操作:在小型移动设备上的界面通常是触摸界面。老的用户代理,比如Elm 、mh 和Pine 提供的是基于文本的界面,期望用户从键盘输入一个字符命令。从功能上看,这些界面都相同,至少对文本消息是一样的。
    • 用户代理界面的典型元素如图所示。你的邮件阅读器可能比这个要华丽得多,但或许具有同等的功能。当用户代理被启动时,它一般会给出用户邮箱内邮件的摘要信息。通常情况下,摘要信息是每个邮件占一行,并且按照某种排序排列。摘要突出的是从邮件信封或邮件头中提取出来的一些关键字段。在这里插入图片描述
    • 图中显示了的例子中的摘要信息有7 行。每一行使用了发件人、标题和何时接收三个字段,显示的顺序可以按照邮件的发送者、邮件的标题以及邮件的接收时间来排列。所有信息的格式都以用户友好的方式呈现,而不是显示消息字段的文字内容,但无论采用什么方式都必须基于邮件字段。
    • 摘要中也可能包括许多其他字段或指示信息。例如, 图中邮件标题旁边的图标可能表明未读邮件〈信封)、有附件(回形针)和重要邮件,至少发件人判定为重要〈感叹号)。还可以按照其他规则进行邮件的排序。最常见的是根据接收到邮件的时间,将最近收到的邮件优先显示,同时还使用一些指示消息是新的还是己被用户读取过的图标。在邮件摘要显示的字段和排序方式用户可以自己的喜好定制。
    • 需要时用户代理必须能够显示入境邮件信息,方便人们阅读他们的电子邮件。通常系统会提供一个短消息预览,帮助用户决定何时进一步阅读该邮件。预览可以使用小图标或图像来描述邮件的内容。用户代理还提供其他表示的处理方式,包括重新格式化邮件来适应当前的显示,或者翻译或转换邮件内容成更便利的显示格式(例如,可识别文本的数字化语音)。邮件被阅读过后,用户可以决定用它来做什么。这就是所谓的邮件处置( message disposition )。邮件的进一步处理选项包括删除邮件、回复邮件、把邮件转发给另一个用户,以及保存邮件供日后参考。大多数用户代理可以用多个文件夹保存一个邮箱的入境邮件。文件夹允许用户根据发件人、标题或一些其他分类方法来保存消息。
    • 在用户阅读邮件之前,用户代理可以自动完成邮件的归档。一个常见的例子,系统检查邮件的字段和内容,根据有关以前邮件的用户反馈,使用邮件字段和内容来确定是否可能是垃圾邮件。许多ISP 和企业都运行这样的软件,给邮件贴上重要或者垃圾邮件的标签,这样用户代理可以将这些邮件归档到相应的邮箱中。对于许多用户来说, ISP 和公司具有预先看到邮件的优势,并且它们可能拥有己知垃圾邮件发送者的名单。如果几百个用户恰好刚刚收到类似的消息,那么这个邮件很有可能是垃圾邮件。通过预先将入境邮件分类到“可能合法”和“可能垃圾邮件”的做法,用户代理可以为用户节省从垃圾邮件中分离出有用信息的大量工作。
    • 那么,什么是最流行的垃圾邮件?它是由一组被感染的计算机产生的邮件,具体内容取决于你居住的地方。这种被感染的计算机集合就称为僵尸网络(botnet)。在亚洲,典型的垃圾邮件是假文凭的制作;在美国,廉价药品和其他可疑产品的供给是典型的垃圾邮件。用户还可以构造其他归档规则。每个规则指定了一个条件和相应的一个动作。例如,规则可以将来自老板的邮件都放到一个要立即阅读的文件夹中,而指定从某个特定邮件列表发来的任何消息存到另一个文件夹供稍后阅读。图显示了几个文件夹。其中最重要的文件夹是lnbox (收件箱〉,用来存放没有预先规定存放的邮件,即没有其他地方可去的入境邮件:还有一个文件夹是Junk Mail (垃圾邮件),被认为是垃圾邮件的邮件都归类到该文件夹。
    • 除了显式构造自己喜欢的各种文件夹外,用户代理还为用户提供了丰富的搜索邮箱功能。搜索能力为用户提供了快速查找邮件的手段,比如上个月有人发送的有关“在哪里买Vegemite ”的邮件。电子邮件自从刚出现时作为一种文件传输以来,己经走过了很长的路。现在服务提供商经常能为用户支持高达1 GB 的邮箱用来存储邮件,而且这些邮件是用户在很长一段时间内邮件交互的细节。用户代理先进的邮件处理的能力,包括搜索和自动分类处理,使得它可以管理这些大量的电子邮件。对于一年要发送和收到数千封电子邮件的用户来说,这些工具非常宝贵。
    • 另一个有用的功能是用户代理能够以某种方式自动响应邮件。一种响应是将入境的电子邮件转发到一个不同的地址,例如,由一个商业传呼服务所操纵的计算机,通过无线电或卫星寻呼用户,并在他的寻呼机上显示“主题:”行。这些自动响应功能必须运行在邮件服务器上,因为用户代理可能无法在所有的时间内部保持运行状态,而且很有可能只是偶尔检索电子邮件。基于这些因素的考虑,用户代理不能提供一个真正的自动响应服务。然而,自动响应的接口通常由用户代理表示。
    • 另一个不同的自动响应例子是休假代理。这是一个程序,它首先检查每个入境消息,然后给发件人回送一个平淡的答复,比如=“嗨。我在度假。我将于8 月24 日回来后立即联系你。”这样的答复也可以指定如何处理在此期间发生的紧急事项,或者针对某人就某个特殊问题的邮件给予回复等。大多数度假代理跟踪它们己经给哪些用户发过这种“罐装回复”( canned reply ),以免给同一人重复发送相同的回复。然而,这些代理依然有缺陷。例如,它给来自一个大邮件列表的群发邮件回送一个罐装答复显然是不可取的。
    • 让我们现在把注意力转到一个用户将消息发送给另一个用户的场景。用户代理支持的基本功能之一是邮件的组成,这点我们还没有讨论过。邮件的组成涉及创建邮件、回复邮件,以及为了将邮件交付给收件人而将这些邮件发送到邮件系统的其余部分。虽然在创建邮件时,可以使用任何文本编辑器来撰写邮件正文,但邮件正文编辑器通常集成在用户代理中,以便它可以为每个邮件提供类似寻址和多个头字段的辅助功能。例如,在回复邮件时,电子邮件系统可以从收到的邮件中提取发件人的地址,并自动插入到回复邮件的适当的地方。其他一些共同功能包括在邮件底部追加一个签名块、更正拼写错误和计算表明该消息是否有效的数字签名。
    • 发往邮件系统的邮件遵循一个标准格式,这个格式的创建基于提供给用户代理的信息。传输消息的最重要部分是信封,信封中最重要的是目的地址。邮件目的地址必须是邮件传输代理可以处理的格式。期望的地址形式是用户@DNS 地址( user@dns-address )。然而,值得注意的是还存在其他形式的地址。特别是,X.400 地址看上去和DNS 地址完全不同。X.400 是邮件处理系统的ISO 标准,它曾经是SMTP 的竞争对手。SMTP 轻而易举地取得了胜利,虽然仍有人在使用X.400 系统,而且使用者大多在美国以外的地区。X.400地址由“属性=值”对组成,相互之间用斜线分开,例如:
      /C=US/ST=MASSACHUSETTS/L=CAMBR工DGE/PA=360 MEMORIAL DR./CN=KEN SMITH/
      这个地址指定了一个国家、国内的州、地方城市、个人的地址和通用名字( Ken Smith )。标准还允许许多其他属性,你可以发送电子邮件给某个人,他的准确电子邮件地址你并不知道,只要你知道关于他的足够其他属性(例如,公司和职位〉。虽然X.400 名字使用的方便程度大大低于DNS 域名,但这个问题对用户代理没有实际意义,因为它们有用户友好的别名(有时也称为昵称〉,允许用户输入或选择一个人的名字,并得到正确的电子邮件地址。因此,它通常没有必要实际输入这些奇怪的字符串。
    • 最后一点与发送邮件有关的是邮件列表,即允许用户通过一个命令把相同的邮件发送给群发列表中的每个人。如何维护这个邮件列表有两个选择。第一个,可以由用户代理在本地维护。在这种情况下,用户代理只是给每个目标收件人发送一个单独的邮件。另一个选择是远程维护一个在邮件传输代理上的群发名单。然后,邮件在整个邮件传
      输系统中被扩散,等同于多个用户给群发列表中的用户发送邮件的作用。例如,如果一群观鸟者有一个称为birders 的邮件列表,该群发列表安装在传输代理 meadowlark.arizona.edu上,那么任何发送到birders@meadowlark.arizona.edu 的邮件都将被路由到美国亚利桑那大学,并在那里被进一步扩散到邮件列表中的所有成员,这些成员可能分布在全世界的任何地方。这个邮件列表中的用户无法分辨这是一个邮件列表,它可能只是Gabriel 0. Birders教授的个人邮箱。

    3、邮件格式

    • 现在我们从用户接口转到邮件消息格式本身。用户代理发出的邮件必须设置成邮件传输代理能处理的标准格式。首先,我们将考查使用RFC 5322 的基本ASCII 电子邮件,然后我们再考查基本格式的多媒体扩展。RFC 5322 是Internet 邮件格式的最新版本,最初的Internet 邮件格式由RFC822 描述。

    RFC 5322一Internet 邮件格式

    • 邮件由一个基本的信封(作为SMTP 的一部分由RFC 5321 描述〉、数个头字段、一个空行和邮件体组成。头的每个字段(逻辑上)由一行ASCII 文本组成,其中包括域名、一个冒号,对于大多数头的字段来说还包括一个值。几十年前完成设计的最初RFC822 没有明确区分开信封字段和头字段。虽然RFC 5322 己经对RFC 822 做了许多修订,但由于RFC822 己经被广泛使用,因此要想完全重新设计是不可能的。在一般的用法中,用户代理创建一个邮件并把它传递给邮件传输代理,然后邮件传输代理利用某些头字段来构造出实际的信封,这个信封有点像老式的邮件与信封混合体。
    • 图中列出了与邮件传输相关的主要头字段。“ To:”字段给出了主要收件人的DNS地址,邮件系统允许有多个收件人。" Cc:”字段给出了所有次要收件人的地址。从邮件投递的角度来看,主收件人和次收件人没有区别。这完全是一种心理上的差别,这种差别也许对于相关的人而言很重要,但是对邮件系统来说无关紧要。" Cc :”( Carbon copy ,抄送)这个术语有点过时,因为计算机不使用复写纸,但是它己经被约定成俗了。“ Bcc:"( Blind carbon copy ,密件抄送) 字段与Cc:字段类似,只是在发送给主收件人和次收件人的所有副本中,这一行被删除了。这个特性允许人们在主收件人和次收件人都不知道的情况下,向第三方发送邮件副本。
    • 接下来的两个字段“ From:”和“ Sender:”分别指出邮件的撰写者与邮件的发送者,这二者不一定相同。例如,一个公司经理撰写了一个邮件,但她的助理可能是实际发送该邮件的人。在这种情况下,经理被列在“From:”字段中,而她的助理应该出现在“ Sender:”字段。“ From:”字段是必需的,但是,如果“ Sender:”字段与From:字段的值相同,那么可以省略“ Sender:”字段。一旦邮件无法投递井且必须被退回发件人时,这些字段就都是必需的了。在这里插入图片描述
    • 在邮件投递的路径上,每个邮件传输代理都会给该邮件加上一行。该行包含“ Received:”字段,给出了该代理的标识符、接收到此邮件的日期和时间,以及其他一些可用来查找路由系统中错误的信息。“ Return-Path:”字段由最后一个邮件传输代理添加,主要用来指示如何返回至发件人。理论上,这个信息可以从所有的“ Received:”头字段(除了发件人邮箱的名字〉收集得到,但实际上很少填充该字段,它一般只包含发件人的地址。
    • 除了表中列出的字段以外, RFC 5322 消息还包含了各种供用户代理或者收信人使用的字段。下表列出了最常见的一些头字段,它们大部分的含义都不言自明。在这里插入图片描述
    • 有的时候,当邮件的撰写者或者邮件的发送者都不希望看到邮件的回复时,就可以使用“ Reply-To:”字段。例如,市场部经理撰写了一个电子邮件消息,向客户介绍一个新产品。秘书发送了这个消息,但“Reply-To:”字段列出的是销售部门的负责人,因为他可以回答问题并处理订单。当发件人有两个电子邮件账号,并希望消息被回复到其中另一个账号时,这个字段也很有用。
    • “ Message-Id:”字段是自动产生的,用于链接邮件(比如,当使用“ In-Reply-To:”字段时〉并防止重复传递邮件。RFC 5322 文档明确地指出用户可以发明新的邮件头供自己私人使用,只要这些邮件头(自从RFC 822 以来〉以字符串“X-”开头即可。RFC 822 保证将来的邮件头不会使用以X-作为开头的名字,以免官方邮件头与私用邮件头之间发生冲突。像“ X-Fruit-of-the-Day:”这样的字段,它们都是合法的。在邮件头之后是邮件体。用户可以在这里放置他们想放的任何内容。有些人用精心设计的签名来结束他们的邮件,这些签名包括对大大小小某些权威著作的引用、政治声明以及各种各样的声明。

    MIME-多用途Internet 邮件扩展

    • 在ARPANET 早期,电子邮件只能由文本消息组成,这些消息用英文书写并且以ASCII码形式表示。在这样的环境下,RFC 822 完全能够胜任所需的工作:它指定了邮件头,但是把邮件内容完全留给用户自己。在20 世纪90 年代, Internet 在全球范围得到广泛使用,发件人希望通过邮件系统发送更为丰富多彩邮件内容的需求越来越强烈,因此原先的这种方法不再够用。主要问题包括了以下情况下的发送和接收两个方面:用带有重音符的语言(例如,法语和德语)来撰写的邮件、用非拉丁字母来撰写的邮件(例如,希伯来语和俄语)、用不带字母的语言来撰写的邮件(例如,中文和日文)以及完全不包含文本的邮件(例如,音频、图像或二进制文档和程序)。
    • 解决方案是多用途Internet 邮件扩展。它已被广泛应用于在Internet 上收发邮件消息,除此之外它还可以描述诸如Web 浏览器等其他应用的内容。有关MIME 的信息由RFC2045 ~2047 、4288 、4289 及2049 文档描述。MIME 的基本思想是继续使用RFC 822 格式(在RFC 5322 之前MIME就己经被提出来了),但在邮件体中增加了结构性,并且为传送非ASCII 码的邮件定义了编码规则。由于它没有偏离RFC 822,因此己有的邮件传输代理和协议(基于RFC 821 ,现在是RFC 5321)都可以发送MIME 消息。需要改变的只是发送和接收程序,而这些可以由用户自己来完成。
    • MIME定义了5 种新的邮件头,如表所示。第一个邮件头只是告诉接收邮件的用户代理,它正在处理一条MIME 消息,以及该消息使用的是哪个版本的MIME。任何不包含“MIME-Version:”邮件头的消息都被假定是英语明文消息(或者至少只使用ASCII 字符),并按照这种假定情况下的方式来进行处理。在这里插入图片描述
    • “ Content-Description:”头是一个ASCII 字符串,它指出了邮件包含什么内容。这个头是必需的,这样收件人才能知道是否值得解码和阅读该消息。如果这个字符串说的是“圣巴巴拉仓鼠的照片”,而收到该消息的人并不是一个狂热的仓鼠迷,那么这条消息就可能被丢弃,而不会被解码成一幅高清晰的彩色照片。“ Content-Id:”头标识了邮件的内容,它采用了与标准的“Message-Id:”头相同的格式。“ Content-Transfer-Encoding:”头指出了如何包装邮件体,以便通过网络进行传输。当开发MIME 时,邮件传送协议( SMTP )只能处理一行不超过1000 个字符的ASCII 邮件,这是一个很关键的问题。ASCII 字符占了每8 位字节中的7 位,而二进制数据(比如可执行程序和图像)则使用了每个字节的全部8 位作为扩展的字符集。如果没有任何保障措施,是无法安全传送这种数据的。因此,需要某种方式使得携带二进制数据的邮件看起来就像常规的ASCII 邮件消息一样。自从MIME 开发出来之后, SMTP 也做了相应的扩展,允许邮件正文传送8 位的二进制数据,即使今天二进制数据不进行编码,可能仍然不能被邮件系统正确传送。
    • MIME 提供了5 种传送编码方法,还有一个扩充新方案的入口(只是为了以防万一)。最简单的编码方案就是ASCII 文本消息。每个ASCII 字符占7 位,可以被邮件协议直接传送,只要每行都不超过1000 个字符。次简单的方案与上一个ASCII 方案相同,但使用的是8 位字符。也就是说,从0 到255并且包括255 在内的所有值都是允许的。使用8 位编码的邮件仍然必须遵循标准的最大行长度。然而,存在一些邮件使用了真正的二进制编码。它们是任意的二进制文件,不仅使用全部的8 位,甚至也不遵循每行1000 个字符的限制。可执行程序就属于这一类消息。现在,邮件服务器可以协商是否发送二进制(或者不是8 位的)编码消息,如果双方都不支持该扩展那么就回退到ASCII 字符。二进制数据的ASCII 编码方式称为基于64 编码( base64 encoding )。在这种方案中,每24 位编成一个组,每组被分成4 个6 位的单元,每个单元被当作一个合法的ASCII 码字符来发送。编码方式是“A”表示成0 、“ B ”表示成1 ,以此类推。接着是26 个小写字母、10 个数字,最后是“+”和“/”分别表示成62 和63 。“=”和“=”分别表示最后一个组只含有8 位或者16 位。回车和换行被忽略,所以它们可被任意插入到编码字符流中以便保证每一行足够短。使用这种编码方案后,任意的二进制文本都可以被安全地发送出去,尽管效率不高。在二进制的邮件服务器开发出来之前,这种编码方式非常流行。现在仍然经常有人在用。
    • 对于那些几乎全是ASCII 字符,只有少量非ASCII 字符的邮件, bas64 编码的效率有些低。发送这种邮件时采用了另一种替代方案,这种方案称为引用可打印编码。它正好是7 位ASCII 编码,但所有超过127 的字符都被编码成一个等号后面跟着2 个用十六进制数字来表示的字符值。控制字符、某些标点符号、数学符号以及结尾空白也用这种方式编码。最后,如果有足够的理由不使用上述任何一种编码方案,那么还可以通过“ Content-Transfer-Encoding:”头说明一种用户自定义的编码。上表中显示的最后一个邮件头实际上是最有趣的一个。它指定了邮件体的本质特性,而且具有超出电子邮件范畴的影响。例如,从Web 下载的内容被打上MIME 类型的标签,这样浏览器就知道如何表示该内容。同样地,对于诸如IP语音这样的流式媒体和实时传输,作为邮件内容发送时也作同样的处理。最初,RFC 1521 定义了7 种MIME 类型。每种类型都有一个或多个子类型。类型和子类型由一个斜线隔开,比如“ Content-Type: video/mpeg”。从此以后,针对每个类型都有数百个子类型被扩充进来。整个过程中,每当开发出某种新的内容类型时要添加额外的表项。分配的类型和子类型列表由IANA 在线维护 www.iana.org/assigments/media-types。
    • 类型以及相关的常用子类型例子如表所示。让我们简单地浏览一下,从“text (文本〉”开始。“text/plain (文本/纯文本〉”结合起来可用于表达普通邮件,显示的就是收到的,无须编码,也不需要进一步处理。这个选项允许以MIME 方式传输普通邮件,只需少数几个额外的头。“text/html (文本/网页〉”子类型在Web (RFC 2854)变得流行后允许在RFC822 电子邮件中发送网页。"text/xml (文本/可扩展标记语言)”子类型在RFC 3023 中定义。XML 文档剌激了Web 的发展。在这里插入图片描述
    • image (图像〉,它可传输静态图像。现在广泛用来存储和传输图像的格式有许多种,它们既可以是压缩的,也可以是未压缩的。其中的一些,包括GIF 、JPEG 和TIFF 几乎被内置到所有的浏览器中。除此以外还存在很多其他的图像格式和相应的子类型。
    • audio 〈音频〉和video 〈视频)类型分别用于表示声音和运动图像。请注意, video 类型只包含可视信息而不包含声音。如果要传输一部有声电影,那么视频和音频部分必须被分开传输, 具体如何操作则要依据所使用的编码系统。第一个定义的视频格式称为运动图像专家组(MPEG, Moving Picture ExpertsGroup),这种格式就是由这组专家设计的,但此后又增加了其他一些格式。除了“audio/basic"以外,在RFC 3003 中增加了一种新的音频类型“audio/mpeg”,从而使人们可以通过电子邮件发送MP3 音频文件。“video/mp4”和“ audio/mp4”类型说明以新MPEG4 格式来存储视频和音频数据。在其他内容类型之后增加了model (模型〉类型,主要目的是用来描述3D 模型数据。
      然而, 该类型至今尚未得到广泛的应用。
    • application (应用〉类型是对那些未被其他类型覆盖但又需要应用程序来解释数据的未知格式的统称。例如,我们分别为PDF 文档、JavaScrip 程序和Zip 压缩包列出了pelf、javascript 和zip 子类型。接收到这种邮件内容的用户代理使用第三方库函数或者外部程序来显示内容:显示程序可以集成到用户代理(邮件用户代理),也可以不和用户代理集成在一起。
    • 通过使用MIME 类型,用户代理获得了一种处理应用内容的扩展能力。随着新类型应用程序被不断地开发出来,其传输的内容类型也可能是全新的,因此用户代理的这种可扩展处理能力好处很大。但另一方面,许多新形式内容由应用程序执行或者解释也带来了一些危险。显然,运行一个任意可执行程序是有安全隐患的,虽然通过邮件系统传送的可执行程序可能出自“朋友们”。但这种程序可能会对它可以访问到的那部分计算机带来各种令人讨庆的损害,尤其是如果它能够读取和写入文件,以及使用网络时危害更大。不那么明显的是文档格式也可以带来同样的危险。这是因为这些格式(如PDF )根本是变相的编程语言。虽然它们被限定在一定范围内解释,但解释器中的错误常常让狡猎的文件挣脱限制的束缚。
    • 因为存在许多应用,除了这些例子外还存在许多各种各样的应用程序子类型。如果没有其他已知的子类型更合适描述邮件,那么作为备用“ octet-stream ”子类型表示一个无法解释的字节序列。在接到这样一个字节流时,用户代理很可能会显示它,建议用户将其复制到一个文件。然后,在用户大概知道内容是什么样子之后,再决定对该内容做何种后续处理。
    • 最后两个类型对于撰写和处理邮件本身非常有用。message 类型使得一个邮件可以被完全封装在另一个邮件中。这种方案对于转发电子邮件很有用。例如,当一个完整的RFC822 邮件被封装在另一个外部邮件中时,则应该使用RFC 822 子类型。类似地,对于封装HTML 文档也很普遍。partial 子类型使得有可能将一个被封装的邮件分成多个部分并分别传输它们(例如,如果被封装的邮件太长)。通过一些参数,接收方能够将各部分按照正确的顺序重新组装起来。
    • 最后一个类型是multipart,它允许一个邮件包含多个部分,并且明确地分出每个部分开始和结束的界限。“mixed”子类型允许每个部分类型都不相同,而且无须强制任何额外结构。许多电子邮件程序允许用户在一个文本消息中提供一个或多个附件,这些附件可以multipart 类型发送。与mixed 相反的是, alternative 子类型允许同一个消息被包含多次,但是被表示成两种或多种不同的媒体。例如,一个消息可以按照3 种形式来发送:纯粹的ASCII 文本、HTML和PDF 。一个设计合理的用户代理在接收到这样的消息时,将按照用户的偏好显示。如果可能的话,首选用PDF 格式显示。第二选择应该是HTML 格式。如果这两者都不可能,则显示简单的ASCII 文本。这些部分应该按从简单到复杂的顺序排列,以帮助那些使用MIME (pre-MIME )用户代理的收件人也能够在一定程度上理解消息的含义(例如,即使非MIME 的用户也可以阅读简单的ASCII 文本)。alternative 子类型也可被用来表示多种语言。在这个上下文意义下,罗塞塔石碑( Rosetta Stone )或许可以被看成是一条早先的multipart/altemative 消息。
    • 有关子类型的其他两个例子是parallel 和digest 子类型。当邮件所有部分必须被同时“观看”时,要使用paralled 子类型。例如,电影往往由一个音频和视频组成。如果这两个频道不是并行播放而是先后播放,那么电影就无法得到应有的播放效果。当多个邮件被打包成一个复合邮件时,要使用digest 子类型。例如, Internet 上的一些讨论组往往收集来自各个本组成员的信息,然后将它们作为单个“multipart/digest”邮件定期发送到该讨论组。
    • 下面通过一个例子说明电子邮件如何采用MIME 类型,下面给出了一个多媒体邮件。在这里,生日问候信息同时被当作HTML 和音频文件通过邮件代理传送。假设收件人有播放音频的功能,他的用户代理在展示邮件时将播放声音文件。在这个例子中,声音是作为message/external-body 子类型被引用的,因此用户代理首先必须通过FTP 获取声音文件birthday.snd。如果收件人没有音频能力,那么歌词就会悄无声息地显示在屏幕上。两部分之间的界限由两个连字符来划分,连字符后面跟着一个字符串(由软件生成的〉,字符串说明了boundary 参数。在这里插入图片描述
    • 请注意,在这个例子中,“ Content-Type”邮件头出现在3 个位置上。在顶层,它指出该邮件由多个部分组成。在每个部分中,它指出了该部分的类型和子类型。最后,在第二个部分的正文中,它必须告诉用户代理应该获取什么类型的外部文件。为了显示这种用法的细微不同之处,我们在这里使用了小写字母,尽管所有的邮件头是不区分大小写的。同样地,对于不是按7 位ASCII 编码的外部邮件体,则需要提供“Content-Transfer-Encoding ”头。
    展开全文
  • 电子邮件的工作原理

    万次阅读 2011-05-05 16:16:00
    第一章 电子邮件的工作原理 <br />1. 互联网TCP/IP的基本结构 2. SMTP的基本结构 2.1 SMTP的模型 2.2 SMTP的基本命令 3. 电子邮件的工作原理 <br />4. 电子邮件的信头...

    第一章 电子邮件的工作原理


    1. 互联网TCP/IP的基本结构

    2. SMTP的基本结构
    2.1 SMTP的模型
    2.2 SMTP的基本命令

    3. 电子邮件的工作原理


    4. 电子邮件的信头结构及分析
    4.1 邮件的结构
    4.2 邮件的信头

    第二章 OPEN RELAY 的原理及测试

    1. OPEN RELAY 的原理

    2. 如何确认邮件服务器是否RELAY

    第三章 垃圾邮件的文化与历史

    1. 什么是垃圾邮件

    2. 垃圾邮件的起源与历史


    3. 垃圾邮件的分类


    4. 我们为什么要反对垃圾邮件


    5. 世界垃圾邮件状况


    6. 世界著名的反垃圾邮件组织


    7. 垃圾邮件支持者


     


    第一章 电子邮件的工作原理

    1.互联网TCP/IP的基本结构

    今天的互联网(Internet)的原形是1969年建立的APARNET。在互联网发展史上具有决定意义的一件事是在 1983年1月1日,APARNET正式转换成TCP/IP协议的网络。正是TCP/IP的出现,才使得互联网得以在全世界的范围内迅速发展并具有今天的 规模。

    根据TCP/IP协议,互联网分为4层,加上最底层的硬件层一共是5层:


    物理层:
    对应于网络的基本硬件,这也是Internet物理构成,即我们可以看得见的硬件设备,如PC机、互连网服务器、网络设备等,必须对这些硬件设备的电气特 性作一个规范,使这些设备都能够互相连接并兼容使用。网络接口层:它定义了将数据组成正确帧的规程和在网络中传输帧的规程,帧是指一串数据,它是数据在网 络中传输的单位。

    互联网层:
    本层定义了互联网中传输的“信息包”格式,以及从一个用户通过一个或多个路由器到最终目标?quot;信息包"转发机制。

    传输层:
    为两个用户进程之间建立、管理和拆除可靠而又有效的端到端连接。

    应用层:
    它定义了应用程序使用互联网的规程。电子邮件的SMTP 协议就建立在这一层。Internet 的核心层是网络层和传输层,相应的核心协议是IP协议和TCP协议。IP 协议的主要功能包括无连结数据报传送﹑数据报寻径以及差错处理三部分。IP协议的特点是点到点的,IP对等实体间的通信不经过中间机器,对等实体所在的机 器位于同一物理网络,对等机器之间有直接的物理连接。IP层的主要功能是屏蔽下面物理层的差别,向上一层提供一致的数据格式。所有要传输的数据,被按照一 定的格式分组封装层IP数据报,数据报单元通过寻径等机制进行传输,在接收方数据报进行重组,得到最初要传送的数据。由于IP协议是不可靠的数据传输协 议,由于网络的拥塞而发生的数据丢失等情况是不可避免的,因此Internet 还必须有一定的控制重传机制,这就是差错与控制报文协议(ICMP)。尽管计算机通过安装IP软件,从而保证了计算机之间可以发送和接收数据,但IP协议 还不能解决数据分组在传输过程中可能出现的问题。因此,若要解决可能出现的问题,还需要TCP协议来提供可靠的并且无差错的通信服务。TCP协议被称作一 种端对端协议。这是因为它为两台计算机之间的连接起了重要作用:当一台计算机需要与另一台远程计算机连接时,TCP协议会让它们建立一个连接、发送和接收 数据以及终止连接。传输控制协议TCP协议利用重发技术和拥塞控制机制,向应用程序提供可靠的通信连接,使它能够自动适应网上的各种变化。即使在 Internet 暂时出现堵塞的情况下,TCP也能够保证通信的可靠.Internet 是一个庞大的国际性网络,网路上的拥挤和空闲时间总是交替不定的,加上传送的距离也远近不同,所以传输数据所用时间也会变化不定。TCP协议具有自动调 整"超时值"的功能,能很好地适应 Internet 上各种各样的变化,确保传输数值的正确。

      IP协议只保证计算机能发送和接收分组数据,而TCP协议则可提供一个可靠的、可流控的、全双工的信息流传输服 务。虽然IP和TCP这两个协议的功能不尽相同,也可以分开单独使用,但它们是在同一时期作为一个协议来设计的,并且在功能上也是互补的。只有两者的结 合,才能保证 Internet 在复杂的环境下正常运行。凡是要连接到 Internet 的计算机,都必须同时安装和使用这两个协议,因此在实际中常把这两个协议统称作TCP/IP协议。 TCP/IP 协议除了TCP协议和IP协议,还包含物理接口和IP层之间的ARP/RARP协议,应用层的FTP协议﹑SMTP协议和BOOTP协议等,所用的这些协 议构成Intenet 的TCP/IP 协议族。

    2.SMTP的基本结构

    SMTP (Simple Mail Transfer Protocol)协议是为了保证电子邮件的可靠和高效传送。TCP/IP 协议的应用层中包含有SMTP协议,但事实上它与传输系统和机制无关,仅要求一个可靠的数据流通道。它可以工作在TCP上,也可以工作在NCP, NITS 等协议上。在TCP上,它使用端口25进行传输。SMTP的一个重要特点是可以在可交互的通信系统中转发邮件。

    2.1 SMTP的模型
    SMTP提供了一种邮件传输的机制,当收件方和发件方都在一个网络上时,可以把邮件直传给对方;当双方不在同一个网络上 时,需要通过一个或几个中间服务器转发。SMTP首先由发件方提出申请,要求与接收方SMTP建立双向的通信渠道,收件方可以是最终收件人也可以是中间转 发的服务器。收件方服务器确认可以建立连接后,双发就可以开始通信。下面是SMTP的模型示意图。


    发件方SMTP向收件方发处MAIL命令,告知发件方的身份;如果收件方接受,就会回答OK。发件方再发出RCPT 命令,告知收件人的身份,收件方SMTP确认是否接收或转发,如果同意就回答OK;接下来就可以进行数据传输了。通信过程中,发件方SMTP与收件方 SMTP 采用对话式的交互方式,发件方提出要求,收件方进行确认,确认后才进行下一步的动作。整个过程由发件方控制,有时需要确认几回才可以。


    为了保证回复命令的有效,SMTP要求发件方必须提供接收方的服务器及邮箱。邮件的命令和答复有严格的语法定义,并且回复具有相应的数字代码。所有的命令由ASCII码组成。命令代码是大小写无关的,如MAIL和 mail ﹑mAIL是等效的。

    2.2 SMTP的基本命令
    SMTP定义了14个命令,它们是:

    HELO <SP> <domain> <CRLF>
    MAIL <SP> FROM:<reverse-path> <CRLF>
    RCPT <SP> TO:<forward-path> <CRLF>
    DATA <CRLF>
    RSET <CRLF>
    SEND <SP> FROM:<reverse-path> <CRLF>
    SOML <SP> FROM:<reverse-path> <CRLF>
    SAML <SP> FROM:<reverse-path> <CRLF>
    VRFY <SP> <string> <CRLF>
    EXPN <SP> <string> <CRLF>
    HELP [<SP> <string>] <CRLF>
    NOOP <CRLF>
    QUIT <CRLF>
    TURN <CRLF>
    其中使得SMTP工作的基本的命令有7个,分别为:HELO﹑MAIL﹑RCPT﹑DATA﹑REST﹑NOOP和QUIT.下面分别介绍如下。

    HELO--发件方问候收件方,后面是发件人的服务器地址或标识。收件方回答OK时标识自己的身份。问候和确认过程表明两台机器可以进行通信,同时状态参量被复位,缓冲区被清空。

    MAIL--这个命令用来开始传送邮件,它的后面跟随发件方邮件地址(返回邮件地址)。它也用来当邮件无法送达时,发送失败通知。为保证邮件的成功发送,发件方的地址应是被对方或中间转发方同意接受的。这个命令会清空有关的缓冲区,为新的邮件做准备。

    RCPT --这个命令告诉收件方收件人的邮箱。当有多个收件人时,需要多次使用该命令,每次只能指明一个人。如果接收方服务器不同意转发这个地址的邮件,它必须报 550错误代码通知发件方。如果服务器同意转发,它要更改邮件发送路径,把最开始的目的地(该服务器)换成下一个服务器。

    DATA--收件方把该命令之后的数据作为发送的数据。数据被加入数据缓冲区中,以单独一行 是"<CRLF>.<CRLF>"的行结束数据。结束行对于接收方同时意味立即开始缓冲区内的数据传送,传送结束后清空缓冲区。 如果传送接受,接收方回复OK。

    REST--这个命令用来通知收件方复位,所有已存入缓冲区的收件人数据,发件人数据和待传送的数据都必须清除,接收放必须回答OK.

    NOOP--这个命令不影响任何参数,只是要求接收放回答OK, 不会影响缓冲区的数据。

    QUIT--SMTP要求接收放必须回答OK,然后中断传输;在收到这个命令并回答OK前,收件方不得中断连接,即使传输出现错误。发件方在发出这个命令并收到OK答复前,也不得中断连接。

    下面是SMTP答复中用到的代码和含义:

    500 Syntax error, command unrecognized
    [This may include errors such as command line too long]
    501 Syntax error in parameters or arguments
    502 Command not implemented
    503 Bad sequence of commands
    504 Command parameter not implemented
    211 System status, or system help reply
    214 Help message
    [Information on how to use the receiver or the meaning of a
    particular non-standard command; this reply is useful only to the human user]
    220 <domain> Service ready
    221 <domain> Service closing transmission channel
    421 <domain> Service not available, closing transmission channel
    [This may be a reply to any command if the service knows it must shut down]
    250 Requested mail action okay, completed
    251 User not local; will forward to <forward-path>
    450 Requested mail action not taken: mailbox unavailable
    [E.g., mailbox busy]
    550 Requested action not taken: mailbox unavailable
    [E.g., mailbox not found, no access]
    451 Requested action aborted: error in processing
    551 User not local; please try <forward-path>
    452 Requested action not taken: insufficient system storage
    552 Requested mail action aborted: exceeded storage allocation
    553 Requested action not taken: mailbox name not allowed
    [E.g., mailbox syntax incorrect]
    354 Start mail input; end with <CRLF>.<CRLF>
    554 Transaction failed
    最后,让我们看一个RFC821中给出的例子。这封信是Smith在主机Alpha.ARPA 发给主机Beta.ARPA上的
    Jones,Green和 Brown.并且假定两台主机在同一个网络上。

    S: MAIL FROM:<Smith@Alpha.ARPA>
    R: 250 OK
    S: RCPT TO:<Jones@Beta.ARPA>
    R: 250 OK
    S: RCPT TO:<Green@Beta.ARPA>
    R: 550 No such user here
    S: RCPT TO:<Brown@Beta.ARPA>
    R: 250 OK
    S: DATA
    R: 354 Start mail input; end with <CRLF>.<CRLF>
    S: Blah blah blah...
    S: ...etc. etc. etc.
    S: <CRLF>.<CRLF>
    R: 250 OK
    邮件最后被对方接受。

    3.电子邮件的工作原理


    电子邮件与普通邮件有类似的地方,发信者注明收件人的姓名与地址(即邮件地址),发送方服务器把邮件传到收件方服务器,收件方服务器再把邮件发到收件人的邮箱中。如下图所示:


    更进一步的解释涉及到以下几个概念:

    MUA -- Mail User Agent, 邮件用户代理,帮助用户读写邮件;

    MTA -- Mail Transport Agent, 邮件传输代理,负责把邮件由一个服务器传到另一个服务

    器或邮件投递代理;

    MDA -- Mail Delivery Agent, 邮件投递代理,把邮件放到用户的邮箱里。

    整个邮件传输过程如下:

    目前使用的SMTP 协议是存储转发协议,意味着它允许邮件通过一系列的服务器发送到最终目的地。服务器在一个队列中存储到达的邮件,等待发送到下一个目的地。下一个目的地可以是本地用户,或者是另一个邮件服务器,如下图所示。


    如果下游的服务器暂时不可用,MTA 就暂时在队列中保存信件,并在以后尝试发送。

    4. 电子邮件的信头结构及分析

    4.1 邮件的结构
    在最高层,邮件的结构是非常简单的,用户从终端机上看到的邮件格式一般为:

    1. From: user1@domain1.com

    2. To: user2@domain2.com

    3. Subject: Explaination of mail format

    4. Date: Thu, 1 Apr 1999. 10:00:00 GMT

    5. Hi, Jack

    7. This mail is to explain you the mail format

    8. - - - -

    9. Thanks

    10. Bob

    其中, 1~~4 行称作信件信头(message header) 6~~10行描述信件要表达的内容,称为信体 (message body)。第5行是空行,根据RFC822的要求,信头和信体之间必须加入一空行。[i]信头通常包含字段From, To, Subject 和Date,有的邮件还包含cc,bcc等字段。

    4.2 邮件的信头

    事实上,邮件在传输过程中,服务器要把它打包成一个数据对象,包括上面的信件和一个信封。邮件的投递是依靠信封上的地址或信封信头(envelop address 或envelop header),而不是上面讲的信件上的地址。

    从表面上看,一封邮件是从发件人的机器直接传送到收件人的机器,但通常这并不正确,一封邮件发送和接受过程至少要经 过四台计算机。参考下图所示。用户通常在自己的电脑前编写阅读邮件,我们把它叫做客户端 (client 1~~4 )。大部分组织里,都是用一台专门的机器处理邮件,称作邮件服务器 (SMTP1, SMTP2). 如果用户是从家里拨号上网,那末邮件服务器是ISP 提供的。


    当某个用户在自己的电脑 Client1 前编写完一个邮件,然后把它发送到他的ISP 的邮件服务器SMTP1。此时她的机器已经完成了所有的工作,但邮件服务器SMTP1还必须想法把邮件发送到目的地。SMTP1 通过阅读信头或信封上的地址,找到收件认得邮件服务器SMTP2, 然后与该服务器建立连接,把邮件发到收件人的服务器上,等待收件人来取阅。

    下面我们将通过一个例子说明整个邮件传送过程及邮件的信头变化。假设发件人的名字叫 Sender, email地址是 sender@domain1.com 使用的电脑名字叫 client1, IP 地址是 [111.11.1.1] (假设的地址)。 收件人的名字叫 receipt, email 地址是 receipt@domain2.com, 使用的电脑的名字叫 client2,IP 地址是 [222.22.2.2] (假设的地址)。当邮件编辑完传送给其邮件服务器mail.domain1.com 时,邮件的信头格式为:

    From: sender@domain1.com

    To: receipt@domain2.com

    Date: Tue, Mar 18 1998 15:36:24 GMT

    X-mailer:Sendmail 8.9.0

    Subject: Greetings

    当邮件服务器 mail.domain1.com 把邮件传到接收方的服务器 mail.domain2.com 时,接受方服务器会在信头上记录下有关的计算机信息,邮件的信头变成:

    Received: from client1.domain1.com (client1.domain1.com [111.11.1.1]) by mail.domain1.com (8.8.5) id 004A21; Tue, Mar 18 1998 15:3 7:24 GMT

    From: sender@domain1.com

    To: receipt@domain2.com

    Date: Tue, Mar 18 1998 15:36:24 GMT

    Message-Id: <client1254556544-45556454@mail.domain1.com>

    X-mailer:Sendmail 8.9.0

    Subject: Greetings

    当收件人服务器mail.domain2.com 把邮件接收并存初下来,等待收件人来阅读时,邮件的信头将会再加入一条记录:

    Received: from mail.domain1.com (mail.domain1.com [111.11.1.0] ) by mail.domain2.com (8.8.5/8.7.2) with ESMTP id LAA20869; Tue, Mar 18 1998 15:39:44 GMT

    Received: from client1.domain1.com (client1.domain1.com [111.11.1.1]) by mail.domain1.com (8.8.5) id 004A21; Tue, Mar 18 1998 15:37:24 GMT

    From: sender@domain1.com

    To: receipt@domain2.com

    Date: Tue, Mar 18 1998 15:36:24 GMT

    Message-Id: <client1254556544-45556454@mail.domain1.com>

    X-mailer:Sendmail 8.9.0

    Subject: Greetings

    上面整个记录就将是收件人看到的完整的邮件信头。让我们逐行看一下信头中各行的含义:

    Received: from mail.domain1.com (mail.domain1.com [111.11.1.0] ) by mail.domain2.com (8.8.5/8.7.2) with ESMTP id LAA20869; Tue, Mar 18 1998 15:39:44 GMT

    这封信是从一台自称为 mail.domain1.com 的机器上接收的;这台机器的IP 地址是[111.11.1.0],真实名字就是标称名字 mail.domain1.com; 接收方的机器名称是 mail.domain2.com, 运行的邮件服务器是 Sendmail, 版本(8.8.5/8.7.2) 。接收方机器给邮件的编号是ESMTP id LAA20869, 接收到的时间是 Tue, Mar 18 1998 15:39:44 GMT。

    Received: from client1.domain1.com (client1.domain1.com [111.11.1.1]) by mail.domain1.com (8.8.5) id 004A21; Tue, Mar 18 1998 15:37:24 GMT

    这条记录表明信件是由机器client1.domain1.com ( IP 地址是 [111.11.1.1]) 在Tue, Mar 18 1998 15:37:24 GMT交给mail.domain1.com,并赋给编号id 004A21。

    From,TO ,Date和Subject 都易于理解,分别指明发件人,收件人,信件编辑日期及信件主题。

    Message-Id: <client1254556544-45556454@mail.domain1.com>

    这是由发件方邮件服务器赋给这封邮件的编号。与其它编号不同,这个编号自始至终跟随邮件。

     
    第二章 OPEN RELAY 的原理及测试

    1.OPEN RELAY 的原理

    由于技术的原因,在80年代前,网络还不是很健全,机器之间很少能直接对话发送邮件,人们必须得找出一条有效的连接通路来,然后信件沿着通路一步一步传送到目的地。SMTP协议中就明确指出当邮件在不同的网络间传送时,需要借助中间服务器的RELAY。

    邮件在收件方和发件方之间会经过毫不相干的第三方服务器,这就是邮件转发 (RELAY)。 如下图所示:


    图中的 MAIL SERVER 是可以对要求转发的邮件进行限制的,如只转发来自某个域的邮件或来自于某些IP 得邮件。如果转发没有任何限制,就被称为 OPEN RELAY 或 THIRD PARTY RELAY。
    从历史上看,relay 曾经发挥过重要作用。而且当时这些工作主要靠手工来做,就像我们今天通过邮局发一封信一样。假如我想从沈阳发一封信件到深圳,我再信封上写好收信地址深 圳,邮局就需要找到定义的运送路线: 沈阳,北京,郑州,长沙,广州,深圳。甚至还要长一些。其中很重要一点是每一个中继站都能很好的理解这封信将被送到哪里,下一个接收站是谁。在电子邮件 里,这就相当于每个中继服务器清楚下一个服务起是谁,这就是邮件的转发。

    目前,正常邮件转发已经不再必要,相反,无限制转发常常被发送垃圾邮件的人利用,隐藏真实的邮件来源,让别人以为是从另外的ISP 发出的信件;同时,也把大量的处理工作转移到别人机器上。
    由于前面提到的历史的原因,最初的绝大多数邮件服务器都允许OPEN RELAY的。今天,大部分邮件服务器升级版本已经在缺省设置中关闭了OPEN RELAY, 如Sendmail 从8.9.3版本开始,Exchange Server从5.5版本开始关闭了open relay。有的服务器虽然没有相应的升级版本,也都提供了关闭open relay 的方法,如在NOTES SERVER的配置文件notes.ini 中加入一行:SMTPMTA_REJECT_RELAYS=1。但由于很多服务器管理员的疏忽而没能及时的修补这些安全漏洞,被利用来转发垃圾邮件。

    2 如何确认邮件服务器是否RELAY

    假设要测试的IP是202.112.0.0. 可以使用下列命令进行测试,文中的绿色斜题字为测试邮件服务器的反馈信息:

    #telnet 202.112.0.0 25
    Trying 202.112.0.0...
    Connected to 202.112.0.0.
    Escape character is '^]'.
    220 dns.ccert.edu.cn ESMTP Sendmail 8.11.1/8.11.1; Sat, 30 Jun 2001 21:07:10 +0800
    helo mydomain
    250 dns.ccert.edu.cn Hello point.ccert.edu.cn [202.112.50.3], pleased to meet you
    mail from:nobody@yahoo.com
    250 2.1.0 nobody@#yahoo.com... Sender ok
    rcpt to:nobody@hotmail.com
    550 5.7.1 nobody@hotmail.com... Relaying denied

    最后的Relaying denied 表明该服务器已经安全设置,不会再relay无关邮件了。如果显示的结果是下面的样子,这表明服务器可以转发任何人的邮件。

    rcpt to:nobody@hotmail.com
    250 nobody@hotmail.com... Recipient ok
    data
    354 Enter mail, end with "." on a line by itself
    this is a test of the relay
    .
    250 VAA00289 Message accepted for delivery

    除了用上面的命令行的方法测试外,下面的链接提供了一个测试工具,只需输入IP即可。 http://www.abuse.net/relay.html

    第三章 垃圾邮件的文化与历史

    1. 什么是垃圾邮件
    经常上网的人和经常使用电子邮件的人可能会收到一些莫名其妙的电子邮件,内容大都是一些产品介绍,发财之道等。开 始你可能并不在意,删掉了之;但你可能会发现你还会不断收到类似的邮件,常常令你烦恼不已。这就是我们这里要研究的垃圾邮件。垃圾邮件就是那些你并不希望 收到,并且你也没有订阅过,但却被人利用电子邮件的特点强行塞入你的邮箱的商业广告,产品介绍,发财之道等内容的电子邮件。垃圾邮件一次发给很多人,在 Internet 上同时传送很多副本。

    垃圾邮件和那些强行塞入你家门缝或信箱中的传单又有本质的区别。这些传单的印刷和分发的成本由生产该产品的 厂家来承担。而这些电子垃圾邮件的成本却是由你来支付的。这些垃圾邮件通常是盗用别人的服务器(也可能是你的服务器),使用别人的带宽来传送的。这也就是 为是什么垃圾邮件遭到了如此强烈的谴责,而那些散发传单的人却没有。

    2.垃圾邮件的起源与历史
    垃圾邮件是Internet 技术发展的产物。。与其它先进技术一样,在为人类服务的同时,不可避免的被另外一些人用作相反目的。

    首次关于垃圾邮件的记录是1985年8月一封通过电子邮件发送的链锁信,一直持续到1993年。 1993年6月份,在 Internet上出现了"发财之道(Make Money Fast)"的电子邮件。历史上比较著名的事件是1994年4月份,Canter 和Siegel的法律事务所把一封信发到 6000 多个新闻组,宣传获得美国国内绿卡的法律支持。这是第一次使用 Spam (垃圾邮件)一词,用来描述新闻或电子邮件的主动性发布。同时,垃圾邮件也开始引起了人们的注意和反感。一些触觉敏锐的商人立刻意识到了电子邮件带来的商 机,许多人开始利用电子邮件作商业广告,95年5月有人写出了第一个专门的应用程序 Floodgate,一次可以自动把邮件发给很多人。紧接着在8月份,就有人拿两百万个邮件地址出售。垃圾邮件越来越多与商业联系起来,96年的4月份, 人们开始使用 UCE(Unsolicited Commercial Email) 来称呼垃圾邮件,并开始积极想办法阻止垃圾邮件在Internet 上泛滥。到了96年3月,有人提出了SpamBlock的方法,例如使用 REMOVE.TO.REPLY 的工具来过滤邮件地址。随着过滤垃圾邮件技术的发展以及人们对发送垃圾邮件者的谴责,垃圾邮件的制造者不得不采取更为隐蔽的技术,比如伪造信头中的发件 人,域名,邮件地址等。然而这些方法还是逃不出IP的地址的过滤。于是,垃圾邮件的制造者又开始寻找更为安全的做法,97年3月,他们开始把目光转向 OPEN RELAY。OPEN RELAY是当时解决Internet 路由的一种很好的方法,当然存在以上安全漏洞。很快,大部分商业垃圾邮件就开始利用别人的服务器使用邮件转发的办法发送。这样做的另一个原因是可以节省邮 件发送者的钱,盗用别人的资源。在过去的几年里,人们已经越来越多的意识到控制Internet 上垃圾邮件的重要性,世界各地成立了很多组织反对垃圾邮件,如MAPS,ORBS, SpamCorp. Junckemail.org等,从技术上,法律上做着努力。

    3. 垃圾邮件的分类
    垃圾邮件从内容上看,主要是商业广告性质的邮件;另外,由少量政治,团体组织的宣传邮件。
    从邮件的发送形式上看,有直接发送和第三方转发两种。所谓直接发送,就是邮件的发送者使用自己的服务器,IP 地址,自己的网络资源传送这些邮件。对于接收者来说,如果长期收到这样的邮件,可以采取过滤该IP地址的办法或者根据邮件内容过滤的方法;但如果只是偶尔 收到,就很难找到有效的方法了。使用这种方法,邮件发送人的真实情况很容易被查出来,因此也很少有人使用。目前使用更多的是使用第三方服务器转发。当然大 多都是未经该服务器管理员同意情况下使用的。由于历史的原因,Internet 上有很多服务器可以转发第三方邮件。对于这种垃圾邮件,只要关闭有关服务器的转发功能就可以了。

    4.我们为什么要反对垃圾邮件
    在讨论这个问题之前,让我们看一下为什么会有人采用这种方式做广告。总结一下,大致归于两点原因:低成本和易于匿 名。发送10万封电子邮件的成本低于200美圆,花100美圆就可以买到100万个邮件地址列表。一个业余的邮件广告人只需要一台普通的电脑,一个 Internet帐户加上一个免费的邮件客户端软件就足够了。更为专业一点的,投资几百美圆就可以买到专门的应用软件,每小时可以发送25万个邮件,并且 自动伪装了邮件的信头;并且还可以不断的从WEB 上截获邮件地址。由于低廉的成本,即使只有很少很少的部分得到了反馈,就足以支付这些费用了,比起昂贵的其它方式的广告自然很划算。然而,事实上成本低只 是针对于那些用邮件做广告的人,其他的成本由ISP和收件人承担了。
    另外,从整个 Internet 的资源利用来看,目前带宽资源还比较有限。垃圾邮件里的信息几乎没有什么价值,每次发送上万,百万,甚至上亿份,占用了大量的带宽资源,严重时甚至拥塞整 个Internet 链路,中断 Internet 的部分线路的运营。 这是 ISP 和服务器管理员所不希望看到的。据CAUCE组织统计,消除垃圾邮件可为全世界小型企业和个人每年节省940万美圆。
    其次,从个人用户来看,垃圾邮件浪费了人们的大量时间。一般人们需要至少10秒钟时间来判断是否为垃圾邮件,如果每天收到几十份垃圾邮件,就得花大约十分钟的时间来处理它们,实在是比较痛苦的事情。


    垃圾邮件也威胁网络的安全,特别是那些利用别人的服务器转发邮件的情况。今年3月份,我们就收到两起来自 CERNET用户的有关事故报告。其中一个是网络管理员发现他们的服务器在以每秒60封的速度转发邮件,占用了大量的系统资源,其他正常运作被迫终止。另 外一起是管理员发现出国流量突然增加,一查发现该服务器转发了200万封国外的来源不名的邮件,而且发现时还在转发。
    从法律的角度来看,发送垃圾邮件属于言论自由的滥用,不但得不到法律的支持,相反,很多地方正积极之制定相关法律来禁止垃圾邮件。


    5. 世界垃圾邮件状况
    正如上一节讲到的,垃圾邮件并不受人们的欢迎。从垃圾邮件的产生之初,人们就开始了反垃圾邮件的工作,并取得了一定的进展。我们不妨回顾一下过去的几年中取得的进展:
    95.7 在英语中开始使用spam 以此来表示垃圾邮件,表明垃圾邮件已成为一个正式的课题;
    95.10~11,行业内开始使用专门的邮件账户 abuse@domain 来讨论垃圾邮件,并开始出现所谓的黑名单,把一些已知的发送垃圾邮件的 IP 列入其中,人们可以用来过滤垃圾邮件;
    97.5 CAUCE (Coalition Against Unsolicited Commercial E-mail) 组织成立,倡议建立法律来同垃圾邮件做斗争;
    98.4 Interner 协会 ISOC (Internet Society) 召开会议专门讨论了垃圾邮件;
    99.2 发布了RFC2502, Anti-Spam Recommendations for SMTP MTAs, 标志垃圾邮件已正式成为Internet 的重要研究课题。


    另外一种比较办法用 OPEN RELAY 服务器的数量。以美国 IMC(Internet Mail Consortium)组织在美国的统计结果来看,OPEN RELAY 服务器数量已有1998年的55% 迅速下降到 2001年初的 6% 左右。 如下图所示 :


    在其他国家和地区,状况虽然不会有这样好,但随着越来越多的人们意识到垃圾邮件的危害,随着相关技术的不断成熟,网络安全意识的不断提高,垃圾邮件的活动空间将越来越小。


    6 世界著名的反垃圾邮件组织
    世界各地成立了许多组织开展反垃圾邮件的工作。目前几个著名的组织有MAPS,ORBS, SpamCorp 等,他们从技术角度着手解决垃圾邮件,他们都各自维护了一个发送或转发垃圾邮件的数据库,帮助用户过滤垃圾邮件。另外,CAUCE等组织则积极推动建立相 关的法律体系以彻底清除垃圾邮件。


    7 垃圾邮件支持者
    目前大量发送垃圾邮件的主要是一些中小企业,以此来进行广告商业宣传。同时,也有一些大的组织机构出于自己的商业 目的而支持垃圾邮件。据Spamhaus 统计,90% 的垃圾邮件来自于知名的盈利机构 ,Spamhoue收集了100 多家主要的支持垃圾邮件的 ISP, 其中甚至包括著名的跨国公司。 有的公司甚至把支持垃圾邮件作为自己的经营策略。还有一些公司是专门提供发送垃圾邮件的应用程序。正因为如此,才增加了禁止垃圾由邮件的难度。目前,一些 公司主要从以下几个方面从事或支持垃圾邮件,尽管他们不一定直接发送这些邮件:

    制作并销售具有特殊功能的垃圾邮件发送软件,这些软件具有"隐蔽功能",能够逃避普通的过滤器;
    制作和销售从网络上截获 email 地址的工具;
    销售从网络上获取的 email 地址列表;
    销售具有发送垃圾邮件特征的服务,媒体或软件;
    提供发送垃圾邮件的商业服务;
    为垃圾邮件的制造者提供防攻击(bulletproof)的服务;
    提供到以上站点的链接或把链接转向以上站点。
    目前,有656个上述网站被 Spamhaus 记录并仍在从事支持垃圾邮件的行为,3149个站点被关闭或被迫停止类似业务。

    展开全文
  • 电子邮件系统的介绍

    千次阅读 2017-04-03 17:24:57
    1、前言电子邮件系统的组成: 用户接口 用户接口是本地运行的程序,又称用户代理(UA),主要是撰写、显示、处理邮件。UA的任务是创建和显示报文,并且在UA和本地的MAT之间传递报文 邮件传输程序 这个部分又称报文...

    ()## 1、前言 ##

    电子邮件系统的组成:

    • 用户接口
    用户接口是本地运行的程序,又称用户代理(UA),主要是撰写、显示、处理邮件。UA的任务是创建和显示报文,并且
    在UA和本地的MAT之间传递报文
    • 邮件传输程序
    这个部分又称报文传送代理(MTA),它将邮件通过网络发送给对方主机,并从网络接收邮件。它包括如下两个功能:
    
     1. 传送和接收:电子邮件按照c/s方式工作。用户编写好邮件,通过UA将邮件交给MTA。发送邮件时,MTA作为远程
     目的计算机服务器的客户,与目的主机建立TCP连接,并将邮件发送到目的主机。接收方收到邮件后,存放在接收方的
     邮箱中,等待阅读
     2. 报告:将邮件传送情况(已交付、被拒、丢失等)向发信人报告

    另外,邮件在发送过程中要经过很多结点,因此每个结点都要安装邮件传输程序(MTA),以便对邮件存储转发。Internet上的MTA集合构成了报文传送系统(MTS)。

    如下图所示,就是一个邮件传输的过程:
    这里写图片描述

    2、一封邮件报文的传输过程

    这里写图片描述

    如上图所示,用户A要写一封邮件给用户B,它的过程如下:
    1. 用户A写好了一封邮件,发送到它所注册的邮件服务器A。邮件服务器A接收和存储邮件,并反馈“邮件报文成功发送”给用户A
    2. 邮件服务器A根据用户B的邮件地址,确定要把报文发送到何处,第一步是在DNS系统查询与该报文的目的邮箱地址有关的邮件资源记录
    3. 如果查询返回的邮件交换记录中给出两个邮件交换系统,就是服务器B和服务器C都可以接收发给用户B的邮件,但是发现服务器C的优先级比较高,所以邮件服务器A就会和邮件服务器使用TCP协议建立SMTP会话,并将邮件报文发送给邮件服务器C。
    4. 由于邮件服务器C无法将该报文直接交给主机B,所以它同样是在DNS系统查询与该报文的目的邮箱地址有关的邮件资源记录,最后通过优先级的比较,邮件又被传送到了邮件服务器B,邮件服务器B将邮件存储到本地报文中
    5、用户B可以通过主机,借助适当的软件,从邮件服务器B中取出邮件报文阅读。

    3、与电子邮件系统有关的典型协议有如下几种:

    • 传输方式协议
     - 简单邮件传输协议(SMTPSimple mail transfer prctocol)
     - 通用Internet邮件扩展协议(MIMEMultipurpose Internet Mail Extensions

    补充:MIME属于一个邮件从传输协议,它只是对SMTP的一个扩展,不能替代SMTP协议,至于为啥要替换SMTP了。(可参考博客:SMTP协议介绍
    - 邮件存储访问协议

     - 邮件协议第三版POP-3(post office protocol)
     - Internet邮件访问协议第四版IMAP-4(interactive mail access protocol)

    4、邮件报文的交付的3个阶段

    这里写图片描述

    1. 邮件报文从用户代理到本地邮件服务器。(SMTP会话)
    2. 本地邮件服务器作为SMTP客户,将报文转发给作为SMTP服务器的远程服务器,直到到达目的地址所在的服务器
    3. 接收邮件的用户通过用户代理程序,使用POP3或IMAP4协议对个人邮箱进行访问,读取邮件
    展开全文
  • 电子邮件

    2020-06-23 18:33:38
    ## 电子邮件的工作机制 提供电子邮件服务的协议叫做SMTP(Simple Mail Transfer Protocol)。SMTP为了实现高效发送邮件内容,在其传输层使用了TCP协议。 早期电子邮件是在发送端主机与接收端主机之间直接建立TCP...
  • 计算机网络之电子邮件系统

    万次阅读 2017-11-08 22:27:10
    电子邮件系统 一个电子邮件系统应具有三个主要组成部分:用户代理、邮件服务器、邮件发送协议(如SMTP)与邮件读取协议(如POP)。 用户代理(User Agent)就是用户与电子邮件系统的接口,在大多数情况下它...
  • 电子邮件的概述

    2014-12-17 15:11:45
    1〉电子邮件的概述  电子邮件又称电子信箱、电子邮政,是一种用电子手段提供信息交换的通信方式。是Internet提供的重要服务之一。与传统的邮件比,电子邮件不仅可以节省邮费,而且可以大大节省信件的往返时间。无论...
  • 在日新月异的今天,Linux内核开发项目仍然依赖于古老的电子邮件和邮件列表。稳定内核维护者Greg Kroah-Hartman 指出,电子邮件仍然是管理如内核这样庞大项目的最佳方法。去年,Greg一个人就接受了9,781个补丁,而...
  • 在控制面板中打开【默认程序】,选择【将文件类型或协议与程序关联】   ...在关联列表中查找到名称【.mapimail】的选项,点击右上边【更改程序】(或者双击也可以),在弹出的窗口中选择【浏览】,找到Foxmail...
  • 电子邮件发送协议主要是SMTP,收件协议主要是POP3和IMAP; SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。...
  • Steve Stevenson, Web Designer www.misterstevenson.com | steve@misterstevenson.com
  • “没有关联的电子邮件程序来执行请求的操作”怎么办? win10系统是由邮件程序的,为什么会提示需要安装电子邮件程序呢?这是因为我们没有设置邮件关联程序来打开邮件或者是邮件app功能没有打开导致的。 解决办法: ...
  • 电子邮件是qq邮箱吗

    万次阅读 2019-04-02 11:49:31
    一米软件发现很多刚接触邮件群发的小白甚至都会有这样的疑问:电子邮件是qq邮箱吗,其实这个问题很简单,下面就一起来看看。 总的来说:QQ邮箱是电子邮箱,电子邮件是电子邮箱里面的信件,所有电子邮件是qq...
  • 无法使用此电子邮件地址。请选择其他电子邮件地址 2、原因 1)注册了Apple ID账号显示电子邮件已用于Apple ID,就是表示注册的电子邮件已经创建过Apple ID账号了,不需要重新再注册。 2)这种情况说明此邮箱已经...
  • 电子邮件地址的正则表达式

    千次阅读 2014-11-23 14:14:04
    电子邮件地址的正则表达式 ^[a-zA-Z0-9._%+-]+@(?!.*\.\..*)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$
  • ZenCart电子邮件设置E-Mail Options

    万次阅读 2012-09-02 01:32:16
    摘要:ZenCart教程之——ZenCart电子邮件设置 E-Mail Transport Method -(电子邮件发送方式 设置发送邮件的方式。 PHP为缺省方式,采用内置的PHP处理方式。 采用Windows和MacOS的服务器要修改该设置为SMTP。 ...
  • 但是,许多企业将电子邮件发送给第三方服务也有许多原因。拥有自己的SMTP服务器的最大问题之一是设置整个事情是非常困难的,以获得稳定的传输速率。搭建邮件服务器(1~7篇文章) 这是什么意思?这意味着如果您只是...
  • 深受Linux用户喜爱的十大邮件客户端

    万次阅读 2014-06-01 20:02:48
    摘要:使用电子邮件客户端能让你更方便的管理你的电子邮件。在Linux操作系统下,有一些非常不错的开源的邮件客户端,以下是我们总结的最受用户欢迎的十个邮件客户端。 使用电子邮件客户端能让你更方便的...
  • 所有的电子邮件应用程序都不相同,因此您需要使用收件人的应用程序支持的邮件格式。Microsoft Outlook 提供了灵活的邮件格式,以满足不同情况下的需要。所选择的邮件格式决定了您是否可以添加带格式文本(如粗体、...
  • 在互联网时代,与客户沟通已经不再局限于电话了,发电子邮件也成为一种新的潮流。那如何注册电子邮件呢?如何创建email邮箱账号呢?下面我们来看看创建邮箱账号的方法以及发送邮件的使用技巧吧! 一、注册电子邮箱...
1 2 3 4 5 ... 20
收藏数 299,067
精华内容 119,626
关键字:

电子邮件