电子邮件系统
一个电子邮件系统应具有三个主要组成部分:用户代理、邮件服务器、邮件发送协议(如SMTP)与邮件读取协议(如POP)。
用户代理(User Agent)就是用户与电子邮件系统的接口,在大多数情况下它就是运行在用户PC机中的一个程序。一般具有撰写、显示、处理、通信等功能。
因特网上有许多邮件服务器可供用户选择,邮件服务器24小时不间断地工作,并且具有大容量的邮件信箱。邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。邮件服务器按照客户服务器方式工作。邮件服务器需要使用发送和读取两个不同的协议。
应当注意的是,一个邮件服务器既可以作为客户,也可以作为服务器。
例如,当邮件服务器 A 向另一个邮件服务器 B 发送邮件时,邮件服务器 A就作为 SMTP 客户,而 B 是 SMTP 服务器。
当邮件服务器 A 从另一个邮件服务器 B 接收邮件时,邮件服务器 A就作为 SMTP 服务器,而 B 是 SMTP 客户。
发送和接收电子邮件的几个重要步骤:
(1)发件人调用 PC 中的用户代理撰写和编辑要发送的邮件。
(2)发件人的用户代理把邮件用SMTP 协议发给发送方邮件服务器,
(3)SMTP 服务器把邮件临时存放在邮件缓存队列中,等待发送。
(4)发送方邮件服务器的SMTP 客户与接收方邮件服务器的 SMTP 服务器建立 TCP 连接,然后就把邮件缓存队列中的邮件依次发送出去
(5)运行在接收方邮件服务器中的SMTP服务器进程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。
(6)收件人在打算收信时,就运行 PC 机中的用户代理,使用 POP3(或 IMAP)协议读取发送给自己的邮件。请注意,POP3 服务器和 POP3 客户之间的通信是由 POP3 客户发起的。
简单邮件传送协议SMTP
SMTP(Simple Mail Transfer Protocol)所规定的就是在两个相互通信的 SMTP 进程之间应如何交换信息。
由于 SMTP 使用客户服务器方式,因此负责发送邮件的 SMTP 进程就是 SMTP 客户,而负责接收邮件的 SMTP 进程就是 SMTP 服务器。
SMTP 通信的三个阶段:
(1)连接建立:连接是在发送主机的 SMTP 客户和接收主机的SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器。
(2)邮件传送
(3)连接释放:邮件发送完毕后,SMTP 应释放TCP 连接。
邮件读取协议POP和IMAP
POP(Post Office Protocol)邮局协议是一个非常简单、但功能有限的邮件读取协议。现在使用的是它的第三个版本POP3。
POP 也使用客户服务器的工作方式。在接收邮件的用户 PC 机中必须运行 POP 客户程序,而在用户所连接的 ISP 的邮件服务器中则运行 POP 服务器程序。
POP协议支持离线邮件处理,当邮件发送到服务器后,电子邮件客户端会调用邮件客户端程序,下载所有未阅读的电子邮件(这种离线访问模式是一种存储转发服务)。当邮件从邮件服务器发送到个人计算机上,同时邮件服务器会删除该邮件(但是目前很多POP3服务器都支持“下载邮件,服务器并不删除邮件”,也就是说在POP3中改进了POP协议)。
另一个读取邮件的协议是IMAP(InternetMessage Access Protocol),它比POP协议复杂很多。
IMAP 也是按客户服务器方式工作,现在较新的是版本 4,即 IMAP4。
用户在自己的 PC 机上就可以操纵邮件服务器的邮箱,就像在本地操纵一样。IMAP最大的好处就是用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。
注意,不要将邮件读取协议 POP 或 IMAP 与邮件传送协议 SMTP 弄混。
发信人的用户代理向源邮件服务器发送邮件,以及源邮件服务器向目的邮件服务器发送邮件,都是使用 SMTP 协议。
而 POP 协议或 IMAP 协议则是用户从目的邮件服务器上读取邮件所使用的协议。
基于万维网的电子邮件
现在我们大多数情况下都是使用基于万维网的电子邮件,outlook之类的用户代理客户端已经渐渐退出了市场。
不管在什么地方,只要能够上网,就可以借助浏览器收发电子邮件。这时,邮件系统中的用户代理就是普通的万维网浏览器。
需要注意的是,浏览器从邮件服务器读取邮件,或者向邮件服务器发送邮件使用的是HTTP协议,而不是IMAP(POP)或SMTP。
例如,一个网易邮箱用户向新浪邮箱用户通过浏览器发送邮件,各阶段使用的协议如下:
多用途因特网邮件扩充MIME
SMTP有以下不足:
SMTP 不能传送可执行文件或其他的二进制对象。
SMTP 限于传送 7 位的 ASCII 码。许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送。
SMTP 服务器会拒绝超过一定长度的邮件。
于是在这种情况下就提出了MIME(Multipurpose InternetMail Extensions)。MIME 并没有改动 SMTP 或取代它。MIME 的意图是继续使用目前的格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。
MIME 和 SMTP 的关系如下:
MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
常见的MIME类型如下:
MIME类型
扩展名
文件类型
application/msexcel
*.xls *.xla
Microsoft Excel Dateien
application/mshelp
*.hlp *.chm
Microsoft Windows Hilfe Dateien
application/mspowerpoint
*.ppt *.ppz *.pps *.pot
Microsoft Powerpoint Dateien
application/msword
*.doc *.dot
Microsoft Word Dateien
application/octet-stream
*.exe
exe
application/pdf
Adobe PDF-Dateien
application/post******
*.ai *.eps *.ps
Adobe Post******-Dateien
application/rtf
*.rtf
Microsoft RTF-Dateien
application/x-httpd-php
*.php *.phtml
PHP-Dateien
application/x-java******
*.js
serverseitige Java******-Dateien
application/x-shockwave-flash
*.swf *.cab
Flash Shockwave-Dateien
application/zip
*.zip
ZIP-Archivdateien
audio/basic
*.au *.snd
Sound-Dateien
audio/mpeg
*.mp3
MPEG-Dateien
audio/x-midi
*.mid *.midi
MIDI-Dateien
audio/x-mpeg
*.mp2
MPEG-Dateien
audio/x-wav
*.wav
Wav-Dateien
image/gif
*.gif
GIF-Dateien
image/jpeg
*.jpeg *.jpg *.jpe
JPEG-Dateien
image/x-windowdump
*.xwd
X-Windows Dump
text/css
*.css
CSS Stylesheet-Dateien
text/html
*.htm *.html *.shtml
-Dateien
text/java******
*.js
Java******-Dateien
text/plain
*.txt
reine Textdateien
video/mpeg
*.mpeg *.mpg *.mpe
MPEG-Dateien
video/vnd.rn-realvideo
*.rmvb
realplay-Dateien
video/quicktime
*.qt *.mov
Quicktime-Dateien
video/vnd.vivo
*viv *.vivo
Vivo-Dateien