WebMail 基本概念
WebMail 介绍
目前用最多的 mail user agent 应该要算是 Mirosoft 的 Outlook 和 Outlook
Express。这类的 mail reader虽然方便,常碰到的一个问题就是一旦 mail 被收进某台电脑的中,从其他台电脑就读不到这个 mail
了。比如您在公司/学校用电脑收取信件,回家忽然想查看其中部分的内容,因为信件在学校的电脑里头,所以您在家就看不到了;又如果您出门在外的时候,使用的不是自己的电脑,如果忽然想看看自己是否有新信件,也不好用别人的
outlook 收信;另外,设定 pop3 server、smtp server 等对於某些使用者来说也有点困难。这时候 WebMail 就显出他的好处了。
WebMail 就是使用者透过 browser 连到 web server,而由 web server 上的程式负责作收信/送信的动作。使用者直接透过
browser 作读信/写信等操作,信件其实并不存在使用者的电脑上。因此无论使用者用的是哪一部电脑,只要可以连上网路,都可以使用读到之前与新收到的信件。另外一个好处是
WebMail 不容易因为读取含有病毒的档案而导致中毒,更不会发生个人邮件系统中毒后,寄送大量病毒信件给其他亲朋好友的这种惨剧。
WebMail 的种类
依照 WebMail 存取"信件匣(mailfolder)"的方式来分的话,主要可分为两种:
1. Through Imap/POP3

如上图所示,在寄信方面, WebMail 程式以 SMTP protocol 和 Mail Server 上的
Transport Agent 沟通,将信件经由 TA 送往 Internet。而在信件匣的处理上,则是透过所谓的 POP3 或是 IMAP4 server
进行存取。
透过 POP3/IMAP4 server 存取信件匣主要的好处是提供 WebMail Service 的主机和
Mail Server 可以是不同一部机器。因此在为已有的 Mail Server 额外加上 WebMail 服务功能时,就不必担心会影响到原本的
Mail Server。当然上面 Web Server 所用的 Http server 和 WebMail 也可以都安装在与 Mail server
同一部机器里头,不过当 Mail Server Load 很重时,将 Web server 与 Mail Server 两者分开,可以有分散负载的好处。
另一个好处是 WebMail 不必去担心信件匣存取的一些细节问题,比如不用考虑信件匣拥有者,档案权限的问题(由
POP3/IMAP4 server 处理掉了),同时 WebMail 在设计上可以与 信件匣的资料格式无关。只要是 POP3/IMAP4 看得懂的格式,都可以为
WebMail 所用。
【备注】目前常见的信件匣格式共有两种,mbox 和 maildir
|
mbox
|
一个信件匣对应到一个档案,匣内的每封信件,以空白行格开,一封接一封地放在这个档案中 |
| maildir |
一个信件匣对应到一个目录,匣内的每封信件,分别对应到目录中的一个文字档 |
但是透过 POP3/IMAP4 server 存取信件匣也有一些缺点,首先是效率的问题,由於是透过 POP3/IMAP4
来存取信件匣,WebMail 程式本身并无法信件匣作一些进阶的资料管理或索引,因此当信件匣内信件数目一多的时候, WebMail 必须透过 POP3/IMAP4
进行大量的资料传输,会导致速度变慢(试想信件匣内有 5000 封信件,使用者分别要求以日期、作者、标题、大小等条件进行排序的情形)。
其次是功能上的限制,由於 POP3/IMAP server 提供的主要是对信件匣的信件的基本操作,所以如果 WebMail
要提供 Mail 以外的一些功能就较不容易,如:自动回信、行事历、网路磁碟...等等
2. Direct Access

与前面的图相比,可以发现寄信方面还是透过 SMTP 经由 Transport Agent 将信件送往 Internet,但是在信件匣处理上,改成
WebMail 程式直接存取使用者信件匣,不再透过 POP3/IMAP4 server。
直接存取使用者信件匣的主要好处是因为 WebMail 直接处理 filesystem 上的 data file,程式可以针对信件匣内的信件的一些资料栏位进行索引或快取,加速信件匣的存取速度。因此即使在信件匣内有许多信件时,还是维持不错的效能,同时也可以是需要存其他资料在
filesystem 中,所以如要实现其他的功能会较为容易。
但是直接存取档案本身,WebMail 需要了解所处理的信件匣格式的细节,因此要支援多种格式会较为麻烦,同时为了处理信件匣属於不同拥有者所造成的档案权限限制,WebMail
本身需要以 setuid root 方式的身分执行,因此 WebMail 程式本身的设计需要特别小心,以免造成系统安全上的漏洞。
叁考资料:http://turtle.ee.ncku.edu.tw/~tung/openwebmail/
作 者:Chung-Kie Tung
|