|
一直以来,电子邮件系统就是网路管理中一个大题目,其复杂性不亚於管理一个现行网路,甚至有些公司还专门有人负责邮件系统的管理工作呢。 认识邮件系统 在我们真正动手设定 Linux 的email 系统之前,最好先了解一些关於 email 系统的术语和功能。 先让我们认识两个词:MUA 和 MTA ,它们分别是 Mail User Agent 和 Mail Transfer Agent 的意思。MUA 从字面上看似乎好容易给它吓死,但说穿了您可能会笑耶:我们平时用的 Outlook Express、Netscape Mail、或是 Linux 上面的 pine ,它们都是 MUA 。简单说,MUA 是用来给使用者流览邮件和书写邮件的程式。 MTA 呢?我们管它叫邮件伺服器好了,它负责 MUA 的请求,也负责将邮件从一个 MTA 传到另一个 MTA 。通常一个 MTA 都可以支持好几种邮件协定,例如: UUCP、SMTP、POP 等。 UUCP (Unix to Unix Communication Protocol) 现在已经比较少用了,取而代之的是 SMTP (Simple Mail Transfer Protocol) 和 POP (Post Office Protocol) 这两个协定。 SMTP 负责的将邮件从 MUA 上传给 MTA,也是 MTA 和 MTA 之间的邮件传递协定; 而在没有 POP 之前,email 的使用者一般都要用 telnet 或其它远端控制程式连上 MTA 那里,然後在那里阅读邮件,而有了 POP 之後, MTA 可以将使用者的邮件存在一个档案里,然後使用者通过 MUA 连到 MTA ,再将信件下载回本地机器阅读。另外, MUA 和 MTA 都无需是同一个厂家的软体,只要双方都支持 POP 协定就可以了,其灵活性是不言而喻的了。有些程式,如 sendmail ,表面来说,就同时具备 MUA 和 MTA 功能了。 我们用 MUA 撰写邮件之後,是通过 SMTP 协定上传给 MTA 的;而阅读邮件则是通过 POP 从 MTA 那里下载回来。所以,当您设定 MUA 的时候,就要分别指定 SMTP 和 POP 伺服器的位址了,虽然,大多数情况之下都可能会是同一台机器。如果您看一看 Linux 的 /etc/services 这个档案,您会发现如下这几行: smtp 25/tcp mail pop-2 109/tcp postoffice # POP version 2pop-2 109/udppop-3 110/tcp # POP version 3pop-3 110/udp 它们分别指定了邮件伺服器和外面联系所使用的 Port 。您会看到 POP 也有两个版本:2 和 3 ,分别使用 109 和 110 这两个 port。 或许您已经留意到 IMAP (Internet Message Access Protocol) 这个协定吧: imap2 143/tcp imap # Interim Mail Access Proto v2imap2 143/udp imap 这个 IMAP 是目前新的邮件协定,通过 IMAP, 使用者在 MUA 那端就无需分别指定 SMTP 和 POP 作为上传和下载协定了,而只一个 IMAP 协定就可以,而且 IMAP 还可以让不同的使用者共用一个 MUA,非常方便哦。 现在我们对邮件系统应该有了初步的概念了吧。让我们简单的看一看一封邮件的传递流程: - 使用者 A 使用 MUA 撰写了一封邮件给另一个网路的使用者 B。
- 通过 SMTP 上传给 MTA。
- 然後 MTA 通过 SMTP 再传给对方网路的 MTA。
- 最後使用者 B 通过其自己的 MUA 用 POP 连上 MTA 将邮件下载回来阅读。
为了加深我们对流程的理解,不如让我们用 telnet 连接一下 Linux 机器,来一番完全的手工操作:
先建立连接: telnet redhat52 25 您会看到这样的回应: Trying 192.168.0.17...Connected to redhat52.siyongc.domain.Escape character is '^]'.220 redhat52.siyongc.domain ESMTP Sendmail 8.9.3/8.9.3; Sun, 5 Dec 1999 21:59:57 1100 然後我们得先介绍一下自己的所在地: HELO redhat52.siyongc.domain 250 redhat52.siyongc.domain Hello IDENT:root@redhat52.siyongc.domain [192.168.0.17], pleased to meet you 正如您看到的回应,MTA 会非常友善的跟您打个招呼。 如果您要寄信的话,先把自己的地址写在信封上(这是按照西方的信封书写习惯啦): MAIL FROM: root@redhate52.siyongc.domain 250 root@redhate52.siyongc.domain... Sender ok 如果您的地址没问题,然後输入收信人地址: RCPT TO: kenny@siyongc.domain 250 kenny@siyongc.domain... Recipient ok 如果收件人的地址没问题的话(嘿!他们的效率还真快哦,不像我们的邮差,要等差不多一个星期才知道收信人地址不对),接著您就可以输入: DATA 354 Enter mail, end with "." on a line by itself 以下就是写信的内容了: TO: kenny@siyongc.domain Subject: Test Only
Hello Kenny, This is a test only. . 250 WAA02035 Message accepted for delivery 在开头的两行,我们称之为 Header,我们使用 MUA 写信的时候也是要输入的。然後接一空白行(这行不能省),再写信肉。当您要完成信肉的话,另起一新行,只带一个“.”符号就可以了。
最後,我们结束 SMTP 连线: QUIT 221 redhat52.siyongc.domain closing connectionConnection closed by foreign host.
刚才是手工的写一封信,下面,让我们手工地收一封信: telnet redhat52 110 您会看到这样的回应: Trying 192.168.0.17...Connected to redhat52.siyongc.domain.Escape character is '^]'. OK POP3 redhat52.siyongc.domain v7.59 server ready 然後您输入POP 使用者名称: USER kenny OK User name accepted, password please 再输入密码: PASS lw94
|