MailConcept
~~~~~~~~~~~~~
配置Mutt比想象的要复杂,因为在此之前我基本上对邮件服务是一窍不通,所以还是先了解邮件的基本原理,它主要包括下面几个部分:
MTA (Mail Transfer Agent): 邮件传输代理,主要负责将邮件转发到目的服务器的MTA,MTA之间的通讯采用SMTP (Simple Mail Transfer Protocol)协议。流行的软件有:
+ http://www.sendmail.org
+ http://www.exim.org
+ http://www.postfix.orgMDA (Mail Delivery Agent): 邮件投递代理,当邮件到达目的主机,不用再继续转发的时候,MTA会将邮件交给MDA,由它来投递到相应用户。本文用到的http://www.procmail.org/就是一款流行的MDA。MRA (Mail Retrieval Agent): 邮件获取代理,负责以POP或者IMAP协议将远程邮件服务器的邮件取到本机。fetchmail就是一款典型的MRA。MUA (Mail User Agent)邮件用户代理,也就是经常使用的邮件客户端,主要功能是让用户管理和读取存贮在用户目录上的邮件。包括对邮件内容的加密和解密。典型的MUA有Mutt, Outlook, Foxmail, kmail, evolution等。
Mutt于其他客户端不同的是,它没有内置smtp的访问,也就是说它不能直接发送邮件,官方对此的解释是 “one task per tool” 符合Unix哲学。不过Mutt内置了一些MRA的基本功能,为什么这么做,可以参考:http://wiki.mutt.org/?MailConcept。本文仍然使用一个独立的MRA。
下图会有助于你理解上面的概念:
+----------------------------------+ |domain A | |MUA (mutt) | |tommy send two mails(bob@A,bito@B)| +----------------------------------+ | | v +----------+ bito@B +----------+ bito@B +----------+ |domain A |non-local|domain B | local |domain B | | MTA |-------->| MTA |-------->| MDA | | Check | SMTP | Check | | | +----------+ +----------+ +----------+ |bob@A | |local |deliver v v +----------+ +----------+ +----------+ |domain A | bito@B |domain A | bito@B |domain B | | MDA |<--------| MRA |<--------|bito's | | | | | POP/IMAP|mail box | +----------+ +----------+ +----------+ |deliver(bob is bito) |bob@A,bito@B v +----------+ +-------------------------------+ |domain A | |domain A | |bob's |-------->|MUA (mutt) | |mail box | |bob get two mails(bob@A,bito@B)| +----------+ +-------------------------------+