电子邮件工作原理
引言
每天,通过互联网发送的电子邮件有数十亿封之多。如果您经常上网,或许一天随随便便就要发十几封信。显然,电子邮件已经成为日常生活中广泛使用的沟通工具。
电子邮件能绕过半个地球从您的电脑到达您朋友的收件箱,您是否想过这是什么原理呢?什么是POP3服务器,它如何存放您的邮件?您也许不知道这些问题的答案,但电子邮件的基本原理其实非常简单。在本文中,我们将为您深入分析。
一封电子邮件
据记载,工程师雷汤姆林森(Ray Tomlinson)在1971年发送了史上第一封电子邮件。此前,人们只能给使用同一台电脑的人留言。汤姆林森的突破在于通过使用@标识指明接受消息的计算机,实现了通过互联网向其他计算机发送邮件。
James Nielsen摄影/AFP/Getty Images供图 (Hurricane Katrina)袭击期间,大卫瑞克特(David Ryckaert) (图右)和他来自比利时布鲁塞尔的妻子娜塔莉(Nathalie) 正在查看电子邮件。 |
电子邮件从始至终都是以文本形式出现的,也就是发送给接收者的一段文字。时至今日,人们发送的电子邮件通常仍是简短文字。虽然现在可以通过添加附件,使邮件内容极大丰富。但即使添加了附件,邮件信息的文本形式仍然没有改变——我们在下文中讨论电邮附件的时候,将继续探讨这个问题。
电子邮件客户端
或许您今天已经收到了几封邮件。查看邮件时,您就是在使用电子邮件客户端。流行的电邮客户端包括Microsoft Outlook、Outlook Express、Foxmail等等。Hotmail或Sina等免费电子邮件服务提供的是基于网页的客户端。不同类型的客户端一般都有以下四个基本功能:
- 以邮件标头的形式呈现您邮箱中的所有邮件。标头包括发件人和邮件主题,还可能包含邮件的发送时间、日期以及邮件大小。
- 用户可以点选标头,阅读相应邮件。
- 用户可以新建并发送邮件。写信时要输入收件人地址、邮件主题和邮件内容。
- 用户可以在发送邮件时添加附件,也可保存来信中的附件。
高级的电子邮件客户端可能有许多其他功能,但以上这四个基本功能是所有电子邮件客户端的核心。
简单的电子邮件服务器
只要您的机器上安装了电子邮件客户端,就已经做好发送和接收电邮的准备了。接下来,您只需要把客户端连接到电子邮件服务器。为了方便您了解电子邮件的收发过程,我们先设想一个最简单的模型,然后再来研究实际的电子邮件服务器。
- 服务器中建有电子邮件帐户列表,每位用户都有一个帐户,可以借此从服务器收取邮件。比如说,我的邮件帐户可能是mbrain,约翰史密斯(John Smith)的帐户可能是jsmith。
- 每个帐户在服务器中都对应一个文本文档。因此,服务器文件目录中有一个名为MBRAIN.TXT的文本文档,还有一个名为JSMITH.TXT的文档。
- 给我发送邮件的人会通过邮件客户端以文本形式向我发送消息,邮件内容可能是这样的:“马歇尔,我们周一中午一起吃饭怎么样?约翰”,收件人地址写的是我的邮箱地址。约翰点击了“发送”键后,他的邮件客户端连接到邮件服务器,并把收件人的用户名(mbrain)、发件人的用户名(jsmith)以及邮件内容传送到服务器。
- 服务器把这些信息进行格式处理后,放置到MBRAIN.TXT文件中。这条消息在该文件中看起来可能是这样的:
From:jsmith
To:mbrain
马歇尔:
我们周一中午一起吃饭怎么样?
约翰
服务器还会在该文件中存储一些其他信息,比如收到邮件的时间和日期以及邮件主题。您可以看出整个过程十分简单。
更复杂的服务器
当别人给我的帐户(mbrain)发送邮件时,服务器把邮件按照收到的先后顺序添加到对应文本文档的末尾。等到我登陆阅读邮件时,文本文档中可能已经存储了5或10封邮件。当我想要阅读邮件时,我的邮件客户端连接到服务器计算机,简单说,邮件客户端会:
- 要求服务器发送MBRAIN.TXT的副本
- 要求服务器清除并重置MBRAIN.TXT文件
- 把MBRAIN.TXT文件存储到我的本地计算机
- 分析文档得到独立的邮件(使用“From”作分隔符)
- 将所有邮件标头按列表形式显示出来
我双击一封邮件的标题后,客户端在文本文件中找到这封邮件,并把消息内容展现出来。
您可以看出这个系统非常简单。也许您想不到,真正的电子邮件系统也不比这复杂多少。
真正的电子邮件系统
目前,对于大多数用户来说,电邮服务器计算机上运行着两套服务器程序。其中一个叫SMTP服务器,SMTP是“Simple Mail Transfer Protocol(简单邮件传输协议)”的缩写,SMTP服务器负责处理发送的邮件;另一个是POP3服务器或IMAP服务器,这两个服务器都负责处理收到的邮件。POP是“Post Office Protocol(邮局协议)”的缩写,而IMAP的全称是“Internet Mail Access Protocol(互联网邮件访问协议)”。电子邮件服务器的结构一般如下图所示:
SMTP服务器监听端口25,POP3服务器监听端口110,IMAP服务器监听端口143(请阅读Web服务器工作原理了解更多关于端口的知识)。
SMTP服务器
在发送电子邮件时,您的电子邮件客户端和SMTP服务器进行会话。主机上的SMTP服务器还可能与其他SMTP服务器会话以发送邮件。
假设我想发送一封电子邮件到jsmith@mindspring.com。我的电子邮件用户名是brain,使用的是howstuffworks.com的邮件系统和Outlook Express之类的独立客户端。
设置好howstuffworks的邮件帐户后,我在Outlook Express中输入了邮件服务器名称——mail.howstuffworks.com。写完邮件,点击发送键后:
- Outlook Express通过端口25连接到mail.howstuffworks.com的SMTP服务器。
- Outlook Express和SMTP服务器进行会话,告诉SMTP服务器发件人和收件人的地址以及邮件内容。
- SMTP服务器获取收件人地址(jsmith@mindspring.com)后把它分成两部分:收件人的用户名(jsmith)和域名(mindspring.com)。如果收件人是howstuffworks.com的另一位用户,SMTP服务器直接把信息通过投递代理(delivery agent)程序传输到howstuffworks.com的POP3服务器。mindspring.com和howstuffworks.com是不同的域名,在这种情况下, SMTP服务器需要和收件人域名服务器(Domain Name Server,DNS)进行会话。
- SMTP服务器与域名服务器进行会话(请阅读Web服务器工作原理了解更多信息)。SMTP服务器说:“请给我mindspring.com的SMTP服务器的IP地址。”然后域名服务器会把mindspring的SMTP服务器的一个或几个IP地址发送到SMTP服务器。
- howstuffworks.com的SMTP服务器通过端口25与mindspring的SMTP服务器连接起来,并把邮件传输到Mindspring服务器。它们之间的通讯与我的邮件客户端和HowStuffWorks服务器之间的会话是一样的,都是简单的文本通讯。Mindspring服务器找出了jsmith这个用户名,于是把邮件交给了Mindspring的POP3服务器,POP3服务器再把邮件发送到jsmith的邮箱。
如果由于某种原因,HowStuffWorks的SMTP服务器无法连接Mindspring的SMTP服务器,邮件会进入队列(queue)中。大多数计算机上的SMTP服务器使用sendmail代理程序发送邮件,因此这一队列被称为sendmail队列。sendmail会定期重新发送队列中的邮件,比如说,它可能每15分钟重新发送一次。如果四小时后还没有发送成功,sendmail通常会向您发送一封报错邮件。五天后,根据大多数sendmail的配置,sendmail会放弃继续发送邮件并把邮件返回给发件人。
SMTP服务器有一些非常简单的文本命令,如HELO、MAIL、RCPT、DATA等等。最常见的命令包括:
- HELO - 介绍自己
- EHLO - 介绍自己并要求扩展模式
- MAIL FROM - 指明发件人
- RCPT TO - 指明收件人
- DATA - 确认邮件内容(前三行应为To、From和邮件主题)
- RSET - 重置
- QUIT - 退出进程
- HELP - 命令帮助
- VRFY - 验证地址
- EXPN - 扩展地址
POP3服务器和IMAP服务器
在最简单的POP3应用中,服务器确实管理着大量文本文件——每个邮件帐户对应一个文件。有新邮件时,POP3服务器直接把邮件放置到收件人文本文档的末尾。
当您查看邮件时,您的电子邮件客户端通过端口110连接到POP3服务器。在此过程中,您必须输入用户名和密码才能连接。登陆后,POP3服务器打开您的帐户对应的文本文档,这样您就可以查看邮件了。和SMTP服务器一样,POP3服务器也有一些非常简单的文本命令,其中最为常用的包括:
- USER - 输入用户名
- PASS - 输入密码
- QUIT - 退出POP3服务器
- LIST - 列出邮件及其大小
- RETR - 获取某一编号的邮件
- DELE - 删除某一编号的邮件
- TOP - 显示某一编号的邮件前面几行的内容
您的电子邮件客户端连接到POP3服务器,并发布一系列命令,把邮件拷贝到本地计算机。一般来说,邮件客户端接着会删除服务器上的邮件(除非您命令客户端不要这样做)。
我们可以把POP3服务器看做电子邮件客户端和包含邮件文本的服务器之间的媒介,POP3服务器的原理就是这么简单。您可以通过端口110远程登录POP3服务器,然后自己发布命令(浏览Web服务器工作原理,了解关于远程登陆服务器的更多信息)。
塔米·普鲁特(Tammy Pruett)和她的丈夫利昂(Leon) 正在阅读他们在伊拉克服役的儿子发来的电子邮件。 |
IMAP服务器
从上文可以看出,POP3服务器的协议非常简单。在这种协议中,您的邮件以文本形式存储在服务器里。您的电子邮件客户端(如Outlook Express)可以连接到POP3服务器并把文本文件从服务器的文档中下载到本地计算机。POP3的原理就是这样的。
很多用户对电子邮件服务器有更高的要求,而且希望邮件能够保存在服务器上。因为如果邮件保存在服务器上,用户从任何计算机都能获取邮件。而使用POP3服务器,只能在下载邮件的计算机上查看信息。有的用户在办公室用的是台式机,但在外出时则使用笔记本,POP3服务器很难满足用户在台式机和笔记本电脑上同时查看电邮的需求。
IMAP(互联网邮件访问协议)是更为先进的协议,它能解决上述问题。使用IMAP服务器时,用户的邮件保存在邮件服务器上。您可以把邮件整理到文件夹中,文件夹也保存在服务器上。当您搜索邮件时,事实上是在服务器主机上进行搜索,而不是本地计算机。这样用户可以从任何计算机访问所有文件夹中的所有邮件。
IMAP的问题和电子邮件的附件
电子邮件客户端通过端口143连接IMAP服务器。连接之后,电子邮件客户端可以向服务器发布命令,比如列出服务器上的所有文件夹、列出某个文件夹中的所有邮件标头、从服务器中获取某封邮件、删除服务器上的邮件或搜索服务器中的所有邮件等。
也许有人会问:“我的邮件都存储在服务器上,如果无法上网怎么阅读邮件?”这正是IMAP服务器的问题之一。为了解决这个问题,大多数电子邮件客户端都通过某种方法把电子邮件存储到本地计算机中。邮件内容仍然保存在IMAP服务器上,但本地计算机上存有备份。这样即使无法上网也能阅读和回复电子邮件。下次接入网络时,您可以把收到的新邮件下载下来,并把回复的邮件发送出去。
附件
使用电子邮件客户端可以在邮件中实现发送或下载附件的功能。附件可能包括文本文件、电子表格、声音文件、图片或软件。附件一般来说不是纯文本文档(文本可以直接在正文中发送)。电子邮件只能包含文本信息,而附件不是文本,这样就出现了新的问题。
比如这种视频邮件就是通过附件发送的。 |
在电子邮件发展早期,人们要使用二进制数据编码工具uuencode程序手动处理这个问题。uuencode程序会假定文件中的信息是二进制的。它从二进制文件中每次提取3个字节并把它们转换成4个文本字符(也就是说它一次提取6位,然后转化成32位的文本字符——请阅读位和字节,了解更多关于ASCII字符的信息)。因此,uuencode对原来的二进制文件经过编码处理后产生的是仅包含文本字符的文件。在电子邮件的早期阶段,人们只能自己运行uuencode,把经过处理的文件粘贴到电子邮件中发送。
电子邮件对现今社会产生了巨大影响,它改变了我们的沟通方式,今天的电子邮件系统可以说是一项最为简单实用的发明。电子邮件系统中的某些部分比较复杂,如sendmail的路由规则,但总的来说,整个系统简单得令人难以置信。您下次再发送邮件的时候,就完全明白邮件是怎样发送出去的了。
免费电子邮件服务和收费电子邮件服务
不管是工作需要,还是要和家人朋友保持联系,人们都依靠互联网发送和接收电子邮件。根据2007年3月皮尤互联网及美国生活项目(Pew Internet and American Life Project)的调查研究,91%的美国互联网用户上网发送或接收电子邮件,56%的电子邮件用户每天都收发电邮。
Google和雅虎等服务商提供免费邮件服务。 |
市场调查公司拉迪卡蒂集团(Radicati Group)2007年10月的一份调查报告显示2006年每天发送的邮件达1,830亿封。使用电子邮件的人如此之多,难怪有那么多电子邮件服务商。您可以选择Gmail或雅虎等免费电子邮件服务,也可以选择美国在线(America Online)、苹果或零网公司(NetZero)提供的收费电子邮件服务。
电子邮件礼仪
多数人在与同事、客户或上级交谈时非常注意礼貌,但在使用电子邮件与别人沟通时常常会忽略这一点。
人们使用电子邮件时常常一不小心就违反了电子邮件礼仪。多数人在商业交流上不会使用粗俗无礼的语言,但要是提高嗓门呢?使用电子邮件是否也存在这个问题?
Marc Dietrich摄影 |Dreamstime供图 在电子邮件交流中要保持礼貌,否则会引起意想不到的后果。 |
接下来,我们将讨论一下使用电子邮件发送商务信函的一些礼仪。
人们很忙,所以:
- 要写明标题。您可能常常想跳过电邮标题,但别忘了提醒自己每个人都很忙,包括这封电邮的收件人。标题对收件人有提示作用,看过标题收件人在阅读正文时就能抓住重点、理清头绪。
- 要写得简明扼要。也许您能把文章写得机智风趣,但收件人更喜欢简短清晰。您可以在写生日贺卡或说祝酒词时使用双关语和诙谐的语言,但在书写电子邮件时最好开门见山,按照收信人的要求和需要书写。
- 要保护别人的隐私。有些人习惯在写电子邮件时引用别人发送的邮件,这种做法会让邮件显得冗长,而且收信人也会感到奇怪。除非是确有必要引用别人的来信,否则发信人和收信人之间的邮件不应向第三者传播。
- 要尽快回复。收到邮件后不要拖延,最好尽快回复,哪怕是先告诉发信人您需要更多时间来给出回复。
人们很敏感,所以:
- 使用标点加强语气要慎重。在一句话结束后使用“????”或“!!!!”,收信人读起来可能会觉得您在大喊大叫或是非常不满。要按照常规使用标点。
- 书写时不要全部使用大写字母。全部使用大写字母书写就像说话时大声叫喊,这是不礼貌的,所以要按照规范使用大写字母。想要表示强调时可以这样写“我想强调一下……”。
- 发送之前出声读一遍。尽管您认为自己写的内容不会有什么歧义,但在发送之前自己出声读一遍邮件是有好处的,这样您可以体会到收信人读这封邮件的感受,读完之后再点击“发送”。邮件是书面形式的,发送出去就很难收回来。收信人可能把您的邮件打印出来,也可能转发您的邮件。在邮件中不要写您不想在整个公司甚至公司以外传播的内容。
- 情绪不稳定时不要写邮件。或许在书写邮件时最常见的失礼之处就是在气头上发送了一封针对收信人或某件事情的言辞过激的电邮。请参考上面“发送之前出声读一遍”的建议。向别人发火之后再后悔是没有用的。
不是所有人都很新潮,所以:
- 尽量不要使用表情符号。“笑脸”符号是一种很流行的表达情绪和语义的沟通方式。但是您知道挖苦的笑和调皮的笑有什么区别吗?即使您确切地知道二者的区别,您能保证收信人也知道吗?我们很容易就能想到使用表情符号有可能无意间冒犯别人,因此尽量不要使用此类符号。
- 尽量不要使用缩写短语。有的人在写邮件时常常使用IMHO(in my humble opinion,依我的拙见)、FWIW(for what it’s worth,随便说说)、ROTFL(rolling on the floor laughing,笑得在地板上打滚)等缩写短语。收信人可能看不懂这种缩写而感到莫名其妙。
电子邮件就像商务信函一样,忽略基本规则是对收信人的不尊重,千万不要因为不正式的邮件破坏了收信人对您的印象。
Gmail和雅虎通过向邮箱用户展示广告获取利润。在网上很容易找到人们对各种免费电子邮件的评价,下面就为您简要列举几条。
- Gmail——Gmail是Google提供的免费电子邮件服务。Gmail的网上存储空间几乎是没有限制的。它还具有分类功能,用户可以方便快捷地整理收件箱找出重要信息。免费的Gmail根据用户邮件中的关键词向用户发布广告,这种广告被称为内容关联广告(contextual advertisement)。Gmail能处理多种类型的附件,还具有垃圾邮件拦截和病毒扫描功能。
- 雅虎电邮——雅虎电邮是最流行的免费邮箱服务之一。雅虎提供无限制的网上存储空间,还有即时通讯和RSS新闻订阅功能。雅虎邮箱有十几个文件夹,能够把收到的邮件存储到不同文件夹中,垃圾邮件被自动送入垃圾邮件文件夹,用户还可以手动清理垃圾邮件。此外,方便的拖放工具也是雅虎电邮的特点之一。
- MSN Windows Hotmail——Hotmail是另一款使用人数众多的免费邮箱。Hotmail邮箱服务是微软公司提供的,这种邮箱有5GB的在线存储空间。灵活的界面设计使用户可以定制邮箱的颜色和外观,用户可以选择经典模板,也可以换成特色鲜明的最新模板。微软的安全功能和方便的拖放工具是许多用户选择Hotmail邮箱的原因。
很多收费邮箱的功能和服务更多,比如可能提供更大的存储空间。
付费用户更容易得到个性化的邮箱地址——比如,以真实姓名作为邮箱的用户名。有时付费用户即使更换了ISP(互联网服务提供商),也能保留原有的邮件地址。收费邮箱服务能提供更为完善的用户支持以及个性化垃圾邮件过滤器、额外电子邮件帐户和手机邮箱等特色功能。
大多数互联网服务商免费提供电子邮箱服务。还有一些付费电子邮件服务是专门面向小型企业的,可以为小型企业提供购买和维护域名的服务。