数据传输由早前的ftp服务到后来的uucp服务再到今天的smtp服务,随着互联网的发展smtp服务的应用越来越广泛,下面我们就来谈谈smtp服务,首先我们可以通过下图来简单了解一下smtp服务的建立连接及邮件传递过程:邮件服务器之postfix篇_邮件
邮件传递过程:
    客户端发送邮件给自己的服务器a,服务器a通过smtpd服务的25号端口将邮件接收进来,此时服务器a通过dns服务器解析:如果是自己域中的邮件将交给邮件投递服务器将邮件投递到缓存区,不是发给自己域中的邮件,此时服务器a将作为客户端将通过smtp协议将邮件转发给服务器b,服务器b通过smtpd协议的25端口接收邮件并通过邮件投递服务器将邮件发送到缓冲区。
    通过上面的过程服务器a已经成功将邮件发送给了邮件服务器b,但是当邮件客户端服务器接收到邮件后怎么处理呢?用户怎么从服务器上拿到自己的邮件呢?
下面来让我们通过另外一幅图来了解一下接收邮件过程:邮件服务器之postfix篇_sendmail_02 
邮件接收过程:
   首先邮件服务器b接收到邮件后通过MDA(邮件投递代理)将接收到的邮件投递到邮桶中(即存储邮件的空间),然后用户通过个人PC机上的MUA-Mail User Agent(邮件用户代理)或者webmail-动态服务器界面去连接MRA(邮件取回/检索代理),通过MRA进行对用户身份进行认证后由MRA通过POP3或者imap4协议去邮桶中取回邮件并返回给用户,相反邮件的发送过程跟接收过程相反,不同的就是发送用到的协议是smtp协议。   
邮件传输及接收过程中用到的几个协议: 
1)mime-Multipurpose Internet Mail extentions 多用途互联网邮件扩展;
2)pop3-Post Office Protol 邮局协议,基于tcp-110端口;
3)imap4-Internet Mail Access Protocol互联网邮件访问协议,基于tcp-143端口;
4)smtp-Simple Mail Transfer Protocol 简单邮件传输协议,纯文本的且是明文传     送,基于tcp-25号端口;
 
邮件传输及接收过程中用到的代理: 
1、MTA-Mail Transfer Agent(邮件传输代理);
  1)Exchange;
  2)Lotus Notes Domino;
  3)sendmail;
  4)postfix;
  5)qmail;
  6)exim;
2、MDA-Mail Delivery Agent(邮件投递代理);
  1)procmail;
  2)maildrop;
3、MRA-Mail Retrieval Agent(邮件取回/检索代理);
  1)courier-imap;
  2)cyrus-imap;
  3)dovecot;
4、MUA-Mail User Agent(邮件用户代理);
  1)OE;
  2)foxmail;
  3)mutt;
5、webmail-动态服务器界面;
6、MSA-Mail Submission Agent(邮件提交代理);
    随着邮件服务的发展迅猛,越来越多的人开始利用该服务传递大量的广告及病毒信息,这些就是垃圾邮件,虽然邮件服务的中继能限制垃圾邮件泛滥的问题,但是这种局限是很大的,所以对于很多用户来说处理垃圾邮件就成了工作中很头疼的事,现今的邮件服务就要借助一些特殊机制或软件来防止垃圾邮件。 
预防垃圾/病毒邮件手段:
1)关闭开放式中继open relay;
2)认证:(1)基于IP的认证,只允许给某网段转发,会给出差的员工带来麻烦;
        (2)基于用户的认证,这里最常用的就是SASL认证机制SASL-simple        authentication secure layer简单认证安全层/库(用于为其它没有认证能力的服务提供认证功能),sasl是认证框架,本身不提供认证,saslauthd提供SASL认证服务,而提供saslauthd服务的软件有cyrus-sasl和dovecot,常用的认证机制有plain、login、mysql和ldap,cyrus-sasl的加密库为courier-authlib;    
3)使用专门的软件;
  (1)垃圾邮件过滤器或邮件内容过滤器,根据邮件的内容对邮件进行检查,需依靠
     spam assassin(垃圾邮件刺客)工具;
  (2)病毒防护软件:clamav(著名病毒邮件网关-开源的);
    通过caller呼叫器调用垃圾邮件过滤器或病毒防护软件;
    caller比较常用的有:mailscanner、rnimedefang、amavisd-new;
4)DNS-RBL(DNS实时黑名单),当某服务客户端大量发送垃圾邮件时,在DNS服务器上   会记录该客户端为垃圾邮件客户端,mail服务器接收服务客户端的邮件前先去反解   服务客户端的ip地址,如果与DNS服务器实时黑名单上记录匹配就拒绝接收这个服   务客户端发来的邮件;
我们知道smtp和pop3、imap4接收个发送邮件都是以明文的方式进行传递的,所以数据的安全性就受到了很大的挑战,这就需要对邮件进行加密处理. 
三种协议的加密方式简述: 
1、smtp加密: 基于ssl加密,smtps监听在tcp的465端口,由于邮件需要在互联网上进    行传输,所以要求互联网间的服务器都要加密,而ssl就靠不住了; 
1)S/MIME,需要证书及公钥等来实现;
2)GPG(GNU Privacy Guard), 是PGP的一种实现,需要证书及公钥等来实现;
2、pop3加密:不需要在互联网上进行传输数据,使用ssl加密;
   基于ssl加密,pop3s监听在tcp的995端口;
3、imap4加密:不需要在互联网上进行传输数据,使用ssl加密;
   基于ssl加密,imaps监听在tcp的993端口;
通过以上的讲解应该对邮件服务器有了一个全局的了解了,下面我们就来演示一个具体的实现过程:
DNS服务需要用到的软件包:bind97、bind97-libs、bind97-utils;
邮件服务器要用到的软件包:posfix;
一:安装DNS服务器并配置:
1)安装DNS服务
  1. #yum -y install bind97 bind97-libs bind97-utils 
2)修改DNS配置文件如下:
  1. options { 
  2.           directory       "/var/named"
  3.           dump-file       "/var/named/data/cache_dump.db"
  4.           statistics-file "/var/named/data/named_stats.txt"
  5.           memstatistics-file "/var/named/data/named_mem_stats.txt"
  6.           recursion yes; 
  7. }; 
  8. logging { 
  9.           channel default_debug { 
  10.                   file "data/named.run"
  11.                   severity dynamic; 
  12.           }; 
  13. }; 
  14. zone "." IN { 
  15.           type hint; 
  16.           file "named.ca"
  17. }; 
  18. include "/etc/named.rfc1912.zones"
  19. #vim /etc/named.rfc1912.zones 
3)编辑/etc/named.rfc1912.zones并添加如下行:   
  1. zone "magedu.com" IN { 
  2.           type master; 
  3.           file "magedu.com.zone"
  4. }; 
  5. zone "16.172.in-addr.arpa" IN { 
  6.           type master; 
  7.           file "172.16.zone"
  8. }; 
4)在/var/named下提供magedu.com.zone和172.16.zone配置文件:
1)magedu.com.zone配置文件:
  1. $TTL 600 
  2. $ORIGIN magedu.com. 
  3. @         IN     SOA      ns.magedu.com.   admin.magedu.com.  ( 
  4.                           2012071301 
  5.                           1H 
  6.                           10M 
  7.                           7D 
  8.                           1D ) 
  9. @         IN      NS      ns 
  10. @         IN      MX  10  mail 
  11. ns        IN      A       172.16.11.1 
  12. mail      IN      A       172.16.11.1 
  13. www       IN      A       172.16.11.1 
  14. pop3      IN      CNAME   mail 
2)172.16.zone配置文件:
  1. $TTL 600 
  2. @         IN     SOA      ns.magedu.com.   admin.magedu.com.  ( 
  3.                           2012071301 
  4.                           1H 
  5.                           10M 
  6.                           7D 
  7.                           1D ) 
  8. @         IN      NS      ns.magedu.com. 
  9. @         IN      MX  10  mail.magedu.com. 
  10. 1.11      IN      PTR     ns.magedu.com. 
  11. 1.11      IN      PTR     mail.magedu.com. 
  12. 1.11      IN      PTR     www.magedu.com. 
3)检查magedu.com.zone和172.16.zone配置文件:
  1. # named-checkzone "magedu.com" magedu.com.zone 
  2. # named-checkzone "16.172.in-addr.arpa" 172.16.zone
  3. # service named start
4)DNS服务已正常启动:
  1. [root@localhost named]# netstat -tnulp 
  2. Active Internet connections (only servers) 
  3. Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name    
  4. tcp        0      0 127.0.0.1:2208              0.0.0.0:*                   LISTEN      3310/./hpiod         
  5. tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      2956/portmap         
  6. tcp        0      0 172.16.11.1:53              0.0.0.0:*                   LISTEN      3853/named           
  7. tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN      3853/named           
  8. tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      3350/sshd            
  9. tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      3366/cupsd           
  10. tcp        0      0 127.0.0.1:953               0.0.0.0:*                   LISTEN      3853/named           
  11. tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      3422/sendmail        
  12. tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      3702/sshd            
  13. tcp        0      0 0.0.0.0:638                 0.0.0.0:*                   LISTEN      3000/rpc.statd       
  14. tcp        0      0 127.0.0.1:2207              0.0.0.0:*                   LISTEN      3315/python          
  15. udp        0      0 172.16.11.1:53              0.0.0.0:*                               3853/named           
  16. udp        0      0 127.0.0.1:53                0.0.0.0:*                               3853/named           
  17. udp        0      0 0.0.0.0:5353                0.0.0.0:*                               3571/avahi-daemon    
  18. udp        0      0 0.0.0.0:111                 0.0.0.0:*                               2956/portmap         
  19. udp        0      0 0.0.0.0:631                 0.0.0.0:*                               3366/cupsd           
  20. udp        0      0 0.0.0.0:632                 0.0.0.0:*                               3000/rpc.statd       
  21. udp        0      0 0.0.0.0:635                 0.0.0.0:*                               3000/rpc.statd       
  22. udp        0      0 0.0.0.0:52221               0.0.0.0:*                               3571/avahi-daemon    
二、卸载linux自带的sendmail软件并安装postfix以及对postfix的配置文件进行修改:
  1. #rpm -e sendmail --nodeps 
  2. #yum -y install postfix
  3. #service postfix start
  1. # netstat -tnulp 
  2. Active Internet connections (only servers) 
  3. Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name    
  4. tcp        0      0 127.0.0.1:2208              0.0.0.0:*                   LISTEN      3310/./hpiod         
  5. tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      2956/portmap         
  6. tcp        0      0 172.16.11.1:53              0.0.0.0:*                   LISTEN      3853/named           
  7. tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN      3853/named           
  8. tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      3350/sshd            
  9. tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      3366/cupsd           
  10. tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      5111/master          
  11. tcp        0      0 127.0.0.1:953               0.0.0.0:*                   LISTEN      3853/named           
  12. tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      3702/sshd            
  13. tcp        0      0 0.0.0.0:638                 0.0.0.0:*                   LISTEN      3000/rpc.statd       
  14. tcp        0      0 127.0.0.1:2207              0.0.0.0:*                   LISTEN      3315/python          
  15. udp        0      0 172.16.11.1:53              0.0.0.0:*                               3853/named           
  16. udp        0      0 127.0.0.1:53                0.0.0.0:*                               3853/named           
  17. udp        0      0 0.0.0.0:5353                0.0.0.0:*                               3571/avahi-daemon    
  18. udp        0      0 0.0.0.0:111                 0.0.0.0:*                               2956/portmap         
  19. udp        0      0 0.0.0.0:631                 0.0.0.0:*                               3366/cupsd           
  20. udp        0      0 0.0.0.0:632                 0.0.0.0:*                               3000/rpc.statd       
  21. udp        0      0 0.0.0.0:635                 0.0.0.0:*                               3000/rpc.statd       
  22. udp        0      0 0.0.0.0:52221               0.0.0.0:*                               3571/avahi-daemon  
对postfix的配置文件/etc/postfix/main.cf进行修改:
首先了解一下配置文件中重要选项的意义:
mydomain = … 定义自己所属的域;
myhostname= …定义自己的主机名;
mynetworks = …定义允许中继邮件的客户端来源;
myorigin = …发件人地址伪装;
mydestination = …定义本机负责接收邮件所在的域;
inet_interfaces = …定义监听的ip地址;
  1. myhostname = mail.magedu.com -----定义自己的主机名
  2. mydomain = magedu.com----定义自己所属的域
  3. myorigin = $mydomain----定义自己所属的域
  4. inet_interfaces = $myhostname,localhost--定义监听的ip地址
  5. myhostname = mail.magedu.com---定义允许中继邮件的客户端来源
  6. mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomain, www.$mydomain
  7. -----------定义本机负责接收邮件所在的域
  8. mynetworks = 192.168.0.0/24, 172.16.0.0/16, 127.0.0.0/8----定义允许中继邮件的客户端来源(这里我物理机的客户端是192.168.0.216)
  9. (注:postfixd的主配置文件很独特,如果某一行以空白字符开头的行表示是上一行的延续,如果不是空白开头的行表示独立的指令)
重新加载postfix服务:
  1. # service postfix reload 
  2. # netstat -tnlp
  3. Active Internet connections (only servers)
  4. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  5. tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN 3340/./hpiod
  6. tcp 0 0 0.0.0.0:641 0.0.0.0:* LISTEN 3003/rpc.statd
  7. tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2959/portmap
  8. tcp 0 0 172.16.11.1:53 0.0.0.0:* LISTEN 3283/named
  9. tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 3283/named
  10. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3365/sshd
  11. tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3381/cupsd
  12. tcp 0 0 172.16.11.1:25 0.0.0.0:* LISTEN 4466/master
  13. tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 4466/master
  14. tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 3283/named
  15. tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 3702/sshd
  16. tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 3738/sshd
  17. tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN 3345/python
为了方便演示这里创建两个用户:
  1. # useradd redhat 
  2. # useradd gentoo
利用windows与postfix服务器建立连接并发送邮件:
邮件服务器之postfix篇_postfix_03
查看日志:
  1. # tail /var/log/maillog  
  2. Jul 13 16:33:42 localhost postfix/smtpd[4862]: disconnect from unknown[192.168.0.216] 
  3. Jul 13 16:34:01 localhost postfix/smtpd[4862]: connect from unknown[192.168.0.216] 
  4. Jul 13 16:34:12 localhost postfix/smtpd[4862]: disconnect from unknown[192.168.0.216] 
  5. Jul 13 16:34:26 localhost postfix/smtpd[4862]: connect from unknown[192.168.0.216] 
  6. Jul 13 16:34:42 localhost postfix/smtpd[4862]: 531863756C4: client=unknown[192.168.0.216] 
  7. Jul 13 16:34:59 localhost postfix/cleanup[4867]: 531863756C4: message-id=<20120713083442.531863756C4@mail.magedu.com> 
  8. Jul 13 16:34:59 localhost postfix/qmgr[4861]: 531863756C4: from=<redhat@magedu.com>, size=358, nrcpt=1 (queue active) 
  9. Jul 13 16:34:59 localhost postfix/local[4868]: 531863756C4: to=<gentoo@magedu.com>, orig_to=<gentoo>, relay=local, delay=23, delays=23/0.03/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox) 
  10. Jul 13 16:34:59 localhost postfix/qmgr[4861]: 531863756C4: removed 
  11. Jul 13 16:35:01 localhost postfix/smtpd[4862]: disconnect from unknown[192.168.0.216] 
让gentoo用户登录系统并接收邮件:
  1. [gentoo@mail ~]$ mail 
  2. Mail version 8.1 6/6/93.  Type ? for help. 
  3. "/var/spool/mail/gentoo": 1 message 1 new 
  4. >N  1 redhat@magedu.com     Fri Jul 13 16:34  15/485   "Hello" 
  5. & 1 
  6. Message 1: 
  7. From redhat@magedu.com  Fri Jul 13 16:34:59 2012 
  8. X-Original-To: gentoo 
  9. Delivered-To: gentoo@magedu.com 
  10. Subject:Hello 
  11. Date: Fri, 13 Jul 2012 16:34:36 +0800 (CST) 
  12. From: redhat@magedu.com 
  13. To: undisclosed-recipients:; 
  14.  
  15. Hoa are you ? 
  16.  
  17. &  ---------------------------------------邮件接收成功
gentoo用户给redhat用户回复邮件:
  1. [gentoo@mail ~]$ cat /etc/fstab | mail -s "Hello" redhat 
查看日志文件:
  1. # tail /var/log/maillog  
  2. Jul 13 16:41:50 localhost postfix/pickup[4860]: 451B93756C7: uid=503 from=<gentoo> 
  3. Jul 13 16:41:50 localhost postfix/cleanup[4908]: 451B93756C7: message-id=<20120713084150.451B93756C7@mail.magedu.com> 
  4. Jul 13 16:41:50 localhost postfix/qmgr[4861]: 451B93756C7: from=<gentoo@magedu.com>, size=898, nrcpt=1 (queue active) 
  5. Jul 13 16:41:50 localhost postfix/local[4910]: 451B93756C7: to=<redhat@magedu.com>, orig_to=<redhat>, relay=local, delay=0.06, delays=0.06/0/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox) 
  6. Jul 13 16:41:50 localhost postfix/qmgr[4861]: 451B93756C7: removed 
让redhat用户查收邮件:
  1. [redhat@mail ~]$ mail  
  2. Mail version 8.1 6/6/93.  Type ? for help. 
  3. "/var/spool/mail/redhat": 2 messages 2 new 
  4. >N  1 gentoo@magedu.com     Fri Jul 13 16:40  14/422   "Hello" 
  5.  N  2 gentoo@magedu.com     Fri Jul 13 16:41  21/1019  "Hello" 
  6. & 2 
  7. Message 2: 
  8. From gentoo@magedu.com  Fri Jul 13 16:41:50 2012 
  9. X-Original-To: redhat 
  10. Delivered-To: redhat@magedu.com 
  11. To: redhat@magedu.com 
  12. Subject: Hello 
  13. Date: Fri, 13 Jul 2012 16:41:50 +0800 (CST) 
  14. From: gentoo@magedu.com 
  15.  
  16. /dev/vol0/root          /                       ext3    defaults        1 1 
  17. /dev/vol0/home          /home                   ext3    defaults        1 2 
  18. LABEL=/boot             /boot                   ext3    defaults        1 2 
  19. tmpfs                   /dev/shm                tmpfs   defaults        0 0 
  20. devpts                  /dev/pts                devpts  gid=5,mode=620  0 0 
  21. sysfs                   /sys                    sysfs   defaults        0 0 
  22. proc                    /proc                   proc    defaults        0 0 
  23. LABEL=SWAP-sda3         swap                    swap    defaults        0 0 
  24.  
  25. &  --------------------邮件发送成功:
postfix还支持邮件别名,该配置文件为/etc/aliases
编辑/etc/aliases文件并添加如下红色标注的行:
  1. # Person who should get root's mail 
  2. #root:          marc 
  3. redhat:          gentoo  --------表示发送给redhat用户的邮件让gentoo用户接收;
编辑完成后执行postailese /etc/aliases(表示重新加载hash编码)
 
让root用户发送邮件给redhat:
  1. [root@mail ~]# telnet mail.magedu.com 25 
  2. Trying 172.16.11.1... 
  3. Connected to mail.magedu.com (172.16.11.1). 
  4. Escape character is '^]'
  5. 220 mail.magedu.com ESMTP Postfix 
  6. helo mail.magedu.com 
  7. 250 mail.magedu.com 
  8. mail from:root 
  9. 250 2.1.0 Ok 
  10. rcpt to:redhat 
  11. 250 2.1.5 Ok 
  12. data 
  13. 354 End data with <CR><LF>.<CR><LF> 
  14. Subject:To redhat 
  15. Mail from:root 
  16. Rcpt to:redhat 
  17. Hello redhat? 
  18. 250 2.0.0 Ok: queued as 747EA375690 
  19. quit 
  20. 221 2.0.0 Bye 
  21. Connection closed by foreign host. 
查看日志:
  1. [root@mail ~]# tail /var/log/maillog  
  2. Jul 13 18:48:50 localhost postfix/local[5985]: 747EA375690: to=<tom@magedu.com>, orig_to=<redhat>, relay=local, delay=74, delays=74/0.02/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox) 
  3. Jul 13 18:48:50 localhost postfix/qmgr[4861]: 747EA375690: removed 
  4. Jul 13 18:48:52 localhost postfix/smtpd[5979]: disconnect from www.magedu.com[172.16.11.1] 
  5. Jul 13 18:51:31 localhost postfix/smtpd[6000]: connect from ns.magedu.com[172.16.11.1] 
  6. Jul 13 18:51:57 localhost postfix/smtpd[6000]: 15789375690: client=ns.magedu.com[172.16.11.1] 
  7. Jul 13 18:52:50 localhost postfix/cleanup[6005]: 15789375690: message-id=<20120713105157.15789375690@mail.magedu.com> 
  8. Jul 13 18:52:50 localhost postfix/qmgr[4861]: 15789375690: from=<root@magedu.com>, size=396, nrcpt=1 (queue active) 
  9. Jul 13 18:52:50 localhost postfix/local[6006]: 15789375690: to=<gentoo@magedu.com>, orig_to=<redhat>, relay=local, delay=59, delays=59/0.02/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox) 
  10. Jul 13 18:52:50 localhost postfix/qmgr[4861]: 15789375690: removed 
  11. Jul 13 18:52:51 localhost postfix/smtpd[6000]: disconnect from ns.magedu.com[172.16.11.1] 
让redhat接收邮件:
  1. [redhat@mail ~]$ mail 
  2. No mail for redhat  --------redhat用户没有接收到任何邮件;
  3. [redhat@mail ~]$  
让gentoo去接收邮件:
  1. [gentoo@mail ~]$ mail 
  2. Mail version 8.1 6/6/93.  Type ? for help. 
  3. "/var/spool/mail/gentoo": 2 messages 2 new 
  4. >N  1 MAILER-DAEMON@magedu  Fri Jul 13 18:22  68/2147  "Undelivered Mail Returned to Sender" 
  5.  N  2 root@magedu.com       Fri Jul 13 18:52  17/517   "To redhat" 
  6. & 2 
  7. Message 2: 
  8. From root@magedu.com  Fri Jul 13 18:52:50 2012 
  9. X-Original-To: redhat 
  10. Delivered-To: redhat@magedu.com 
  11. Subject:To redhat 
  12. Date: Fri, 13 Jul 2012 18:51:51 +0800 (CST) 
  13. From: root@magedu.com 
  14. To: undisclosed-recipients:; 
  15.  
  16. Mail from:root 
  17. Rcpt to:redhat 
  18. Hello redhat? 
  19.  
  20. &  --------------------root用户发送给redhat用户的邮件同过邮件别名将邮件转发给了gentoo用户接收了;