1、Linux网络管理及应用,第7章 Email 服务器的配置与应用,目标,了解邮件服务器基本原理 了解MUA、MTA与SMTP、POP3、IMAP协议之间的关系 掌握Sendmail的配置方法和配置文件的主要参数的意义 掌握邮局的配置使用 了解Qmail的配置,邮件服务器基本原理,SMTP、MTA与MUA 邮局与POP3/IMAP Linux系统的邮件消息流程,电子邮件概述,电子邮件(e-mail)是因特网上使用得最多的和最受用户欢迎的一种应用。 电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可随时上网到自己使用的邮件服务器进行读取。 电子邮件不仅使用方便,而且还具
2、有传递迅速和费用低廉的优点。 现在电子邮件不仅可传送文字信息,而且还可附上声音和图像。,电子邮件的一些标准,发送邮件的协议:SMTP 读取邮件的协议:POP3 和 IMAP MIME 在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等),使用 MIME 可在邮件中同时传送多种类型的数据。,电子邮件的最主要的组成构件,发送方,邮件缓存,接收端 邮件服务器,用户代理,SMTP,SMTP,POP3,发送端 邮件服务器,用户代理,用户邮箱,接收方,(发送邮件),(发送邮件),(读取邮件),因特网,SMTP,POP3,发送 邮件,发送邮件 SMTP,读取 邮件,TCP 连接,TCP 连接,发
3、送方 邮件服务器,SMTP 客户,POP3 客户,发件人 用户代理,接收方 邮件服务器,SMTP 服务器,POP3 服务器,SMTP 服务器,SMTP 客户,收件人 用户代理,TCP 连接,用户代理 UA (User Agent),用户代理 UA 就是用户与电子邮件系统的接口,是电子邮件客户端软件。 用户代理的功能:撰写、显示、处理和通信。 邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。 邮件服务器按照客户服务器方式工作。邮件服务器需要使用发送和读取两个不同的协议。,应当注意,一个邮件服务器既可以作为客户,也可以作为服务器。 例如,当邮件服务器
4、 A 向另一个邮件服务器 B 发送邮件时,邮件服务器 A 就作为 SMTP 客户,而 B 是 SMTP 服务器。 当邮件服务器 A 从另一个邮件服务器 B 接收邮件时,邮件服务器 A 就作为 SMTP 服务器,而 B 是 SMTP 客户。,发送和接收电子邮件的 几个重要步骤, 发件人调用 PC 机中的用户代理撰写和编辑要发送的邮件。 发件人的用户代理把邮件用 SMTP 协议发给发送方邮件服务器, SMTP 服务器把邮件临时存放在邮件缓存队列中,等待发送。 发送方邮件服务器的 SMTP 客户与接收方邮件服务器的 SMTP 服务器建立 TCP 连接,然后就把邮件缓存队列中的邮件依次发送出去。,发送
5、和接收电子邮件的 几个重要步骤(续), 运行在接收方邮件服务器中的SMTP服务器进 程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。 收件人在打算收信时,就运行 PC 机中的用户代理,使用 POP3(或 IMAP)协议读取发送给自己的邮件。 请注意,POP3 服务器和 POP3 客户之间的通信是由 POP3 客户发起的。,电子邮件的组成,电子邮件由信封(envelope)和内容(content)两部分组成。 电子邮件的传输程序根据邮件信封上的信息来传送邮件。用户在从自己的邮箱中读取邮件时才能见到邮件的内容。 在邮件的信封上,最重要的就是收件人的地址。,电子邮件地址的格式,TCP
6、/IP 体系的电子邮件系统规定电子邮件地址的格式如下:收件人邮箱名邮箱所在主机的域名 (6-1) 符号“”读作“at”,表示“在”的意思。 例如,电子邮件地址 ,简单邮件传送协议 SMTP,SMTP 所规定的就是在两个相互通信的 SMTP 进程之间应如何交换信息。 由于 SMTP 使用客户服务器方式,因此负责发送邮件的 SMTP 进程就是 SMTP 客户,而负责接收邮件的 SMTP 进程就是 SMTP 服务器。 SMTP 规定了 14 条命令和 21 种应答信息。每条命令用 4 个字母组成,而每一种应答信息一般只有一行信息,由一个 3 位数字的代码开始,后面附上(也可不附上)很简单的文字说明。
7、,SMTP 通信的三个阶段,1. 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器。 2. 邮件传送 3. 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。,电子邮件的信息格式,一个电子邮件分为信封和内容两大部分。 RFC 822 只规定了邮件内容中的首部(header)格式,而对邮件的主体(body)部分则让用户自由撰写。 用户写好首部后,邮件系统将自动地将信封所需的信息提取出来并写在信封上。所以用户不需要填写电子邮件信封上的信息。 邮件内容首部包括一些关键字,后面加上冒号。最重要的关键字是:To 和 Subjec
8、t。,邮件内容的首部,“To:”后面填入一个或多个收件人的电子邮件地址。用户只需打开地址簿,点击收件人名字,收件人的电子邮件地址就会自动地填入到合适的位置上。“Subject:”是邮件的主题。它反映了邮件的主要内容,便于用户查找邮件。 抄送 “Cc:” 表示应给某某人发送一个邮件副本。 “From” 和 “Date” 表示发信人的电子邮件地址和发信日期。“Reply-To” 是对方回信所用的地址。,邮件读取协议 POP3 和 IMAP,邮局协议 POP 是一个非常简单、但功能有限的邮件读取协议,现在使用的是它的第三个版本 POP3。 POP 也使用客户服务器的工作方式。 在接收邮件的用户 PC
9、 机中必须运行 POP 客户程序,而在用户所连接的 ISP 的邮件服务器中则运行 POP 服务器程序。,IMAP 协议 (Internet Message Access Protocol),IMAP 也是按客户服务器方式工作,现在较新的是版本 4,即 IMAP4。 用户在自己的 PC 机上就可以操纵 ISP 的邮件服务器的邮箱,就像在本地操纵一样。 因此 IMAP 是一个联机协议。当用户 PC 机上的 IMAP 客户程序打开 IMAP 服务器的邮箱时,用户就可看到邮件的首部。若用户需要打开某个邮件,则该邮件才传到用户的计算机上。,IMAP 的特点,IMAP最大的好处就是用户可以在不同的地方使用
10、不同的计算机随时上网阅读和处理自己的邮件。 IMAP 还允许收件人只读取邮件中的某一个部分。例如,收到了一个带有视像附件(此文件可能很大)的邮件。为了节省时间,可以先下载邮件的正文部分,待以后有时间再读取或下载这个很长的附件。 IMAP 的缺点是如果用户没有将邮件复制到自己的 PC 机上,则邮件一直是存放在 IMAP 服务器上。因此用户需要经常与 IMAP 服务器建立连接。,必须注意,不要将邮件读取协议 POP 或 IMAP 与邮件传送协议 SMTP 弄混。 发信人的用户代理向源邮件服务器发送邮件,以及源邮件服务器向目的邮件服务器发送邮件,都是使用 SMTP 协议。 而 POP 协议或 IMA
11、P 协议则是用户从目的邮件服务器上读取邮件所使用的协议。,HTTP,HTTP,基于万维网的电子邮件,电子邮件从 A 发送到网易邮件服务器是使用 HTTP 协议。 两个邮件服务器之间的传送使用 SMTP。 邮件从新浪邮件服务器传送到 B 是使用 HTTP 协议。,A,B,SMTP,网易邮件服务器 ,新浪邮件服务器 ,通用因特网邮件扩充 MIME,SMTP 有以下缺点: SMTP 不能传送可执行文件或其他的二进制对象。 SMTP 限于传送 7 位的 ASCII 码。许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送。 SMTP 服务器会拒绝超过一定长度的邮件。 某些 S
12、MTP 的实现并没有完全按照RFC 821的 SMTP 标准。,MIME 的特点,MIME 并没有改动 SMTP 或取代它。 MIME 的意图是继续使用目前的RFC 822格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。,MIME 和 SMTP 的关系,非 ASCII 码,7 位 ASCII 码,MIME,SMTP,MIME,SMTP,7 位 ASCII 码,7 位 ASCII 码,非 ASCII 码,用户,用户,邮件传递代理-MTA,邮件传递代理包括sendmail,D.J. Bernstein的qmail以及Wietse Venema的Postfix系统 MTA还要
13、实现反垃圾邮件功能 安装和设置MTA系统比较容易,不过强大的功能的实现是以高度复杂性为代价的,SMTP、MTA及MUA,SMTP 简单邮件传输协议 MTA 邮件传输代理 MUA 邮件用户代理,邮件客户端(MUA),邮件服务器(MTA),邮件服务器(MTA),邮件客户端(MUA),SMTP,SMTP,POP,邮局与POP3/IMAP,POP3 :邮局协议,用户从远程邮箱下载邮件 IMAP : Internet 邮件访问协议,用户远程管理自己的邮箱 区别,POP客户端,POP服务器,IMAP服务器,IMAP客户端,下载邮件的结构信息和邮件的子集 同时对多个远程邮箱的访问 多个客户机同时访问同一个邮
14、箱 多个用户作为不同的标示同时访问同一个文件夹 客户机与服务器之间的同步,SMTP与POP协议的比较,SMTP协议不是POP协议。POP协议也不是SMTP协议。 SMTP协议是一个只用于发送电子邮件的传输协议。一个用户是不可能连接到一个SMTP服务器去读取自己的邮件的。 邮局协议却正好相反。一个客户可以通过POP协议从一个POP服务器上读取自己的电子邮件,但是客户主机却绝对无法使用POP服务器来发送电子邮件。 经常给人们造成如此错误印象的主要原因,Linux系统的邮件消息流程,POP/IMAP客户端 (fetchmail),本地邮箱,MUA (pine),POP/IMAP,POP/IMAP服务
15、器 (imap),远程邮箱,MTA (Sendmail),Sendmail,Sendmail基础 Sendmail的控制启动 Sendmail主要配置文件 Sendmail的常见配置举例,Sendmail的控制启动,Sendmail的安装 Sendmail的配置 Sendmail的启动,Sendmail安装,rpm安装,rpm ivh sendmail-8.13.8-4.i386.rpm rpm ivh sendmail-cf-8.13.8-4.i386.rpm rpm ivh sendmail-doc-8.13.8-4.i386.rpm,源代码包安装,sendmail.8.13.8-4.ta
16、r.gz,Sendmail基本配置,/etc/sendmail.cf,sendmail.cf配置应该包括7部分: Local Info(本地信息):这部分定义了本地主机的信息 Options(选项):用来设置定义sendmail环境的选项。 Message Precedence(消息的优先级):sendmail消息的优先级 Trusted Users(信任用户):定义发送邮件时允许改变发送地址的用户 Format of Headers(头格式):定义在sendmail中插入的邮件头信息 Rewriting Rules(改写规则):这部分保存着改写邮件地址命令使用该命令可以将邮件地址从用户邮件程
17、序的地址形式改写为邮件发送程序所需要的地址形式。,Sendmail常见配置举例,配置邮件别名、邮件列表、转发 配置邮件服务器的转发 配置虚拟主机和虚拟邮件帐号 配置具有SMTP认证功能的Sendmail,目标: 1.两台邮件服务器分别属于和;各集成smtp和pop3服务功能。 2.其中sina的邮件服务器被同时配置为DNS服务器集成DNS功能并能够解析两个域的所有主机。 3.最终两台服务器实现两个域的邮件转发,经过DOVECOT测试成功,步骤:配置DNS服务器,zone ““ type master; file “.zone“; allow-update none; ; ;zone ““ ty
18、pe master; file “.zone“; allow-update none; ; ;,zone “203.168.192.in-addr.arpa“ type master; file “.local“; allow-update none; ; ;,(.zone) IN SOA . .(20101116013H15M1W1D)IN NS .IN MX 5 . smtp IN A 192.168.125.1 pop3 IN CNAME smtp,(.zone) IN SOA . .(20101116013H15M1W1D)IN NS .IN MX 5 . dns IN A 192.1
19、68.125.128 smtp IN CNAME dns pop3 IN CNAME dns,(反向解析文件) IN SOA . .(20101116013H15M1W1D)IN NS . 128 IN PTR . 128 IN PTR . 1 IN PTR . 1 IN PTR .,2配置sina的邮件服务。 更改/etc/mail/sendmail.mc文件,修改下列地方: DaemonPortsOptions=Port=smtp,Addr=127.0.0.1, Name=MTA 更改为: DaemonPortsOptions=Port=smtp,Addr=yourip或者0.0.0.0,
20、 Name=MTA 然后m4 /etc/mail/sendmail.mc /etc/mail/sendmail.cf 更改/etc/mail/accesss文件,增加: 10 RELAY 或者 RELAY RELAY 完成后makemap hash /etc/mail/access.db access 进行数据库更新。,配置邮件别名、邮件列表、转发,fox,maillist,karry,MTA (Sendmail),其它MTA,系统用户 John mao liu xin zhang,/etc/aliases fox:john maillist:mao liu xin zhang karry:k
21、arryO,配置邮件服务器的转发,192.168.10.10,192.168.10.50,x,MTA (Sendmail),/etc/mail/access.db 192.168.10.10 relay relay,配置虚拟主机和虚拟邮件帐号,亲切,To:,To:,To:,?, ,本地邮箱,/etc/mail/local-host-names ,/etc/mail/sendmail.cw ,其它MTA简述,Qmail与Sendmail的比较 Qmail基本配置 Exim简述 Postfix简述,Qmail与Sendmail的比较,安全 高效 可靠 管理简单 其它,qmail,send
22、mail,邮局基本配置,POP3和IMAP4服务器 POP3和IMAP4客户端工具,POP3和IMAP4服务器,配置,rootmail etc# vi /etc/xinetd.d/ipop3 rootmail etc# vi /etc/xinetd.d/imap,启动,安装,POP3和IMAP4客户端工具,Foxmail Red Hat Linux 9系统上Evolution Email Fetchmail 开发:Eric S. Raymond http:/www.catb.org/esr/fetchmail/fetchmail-6.2.5.tar.gz 取信:fetchmail -p POP
23、3 -u user1 ,本章总结,Internet邮件服务主要由SMTP和POP3/IMAP4提供支持实现,其中SMTP实现邮件的投递和转发,而POP3/IMAP4实现邮件的下载和远程邮箱管理功能 MUA和MTA实际使用上述协议在Internet上处理邮件 常用的MTA包括Sendmail、Qmail、Postfix、Exim、Exchange等;常用的MUA包括Foxmail、Outlook Express、pine、mail、Evolution Email邮件客户端等,本章总结(Cont.),Sendmail的安装、配置、启动;sendmail.cf文件的配置方法;Sendmail邮件别名、邮件列表、SMTP认证、虚拟域的配置 Qmail的安装配置及验证 Exim和Postfix的使用特点 基于imap-2001a-28 软件包的POP3/IMAP4服务器的安装配置,客户端工具的配置验证,