E-mail服务器的安装与配置
 1.查看是否安装了sendmail服务器
  rpm -qa |grep sendmail
 2.安装sendmail服务器
  rpm -ivh send-*.rpm  //服务器程序的安装包
  rpm -ivh m4-*.rpm   //配置sendmail服务器的必要工具
  rpm -ivh sendmail-cf-*.rpm //重新配置sendmail服务器的必要配置文件
 3.打开Sendmail的配置宏文件 /etc/mail/sendmail.mc
  vi /etc/mail/sendmail.mc
  把DAEMON_OPTIONS('Port=smtp,Addr=127.0.0.1,Name=MTA')dnl修改为
  DAEMON_OPTIONS('Port=smtp,Addr=0.0.0.0,Name=MTA')dnl

  支持SMTP发信认证:
  删掉下面两行前的dnl+空格
  dnl TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
  dn1 define('confAUTH_MECHANISMS','EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5   

  LOGIN PLAIN')dnl

  生成新的配置文件
  cd /etc/mail
  mv sendmail.cf sendmail.org //备份原来的配置文件
  m4 sendmail.mc > sendmail.cf //生成新的配置文件

 4.限制或允许Sendmail服务器为某些主机、网域或者IP端服务器
  vi /etc/mail/access
  localdomain RELAY //允许localdomain域使用服务器转发邮件
  192.168.1.0 RELAY //允许该网段的主机使用服务器转发邮件
  192.168.0.1 REJECT //拒绝该网段使用主机服务器

  使用makemap命令生成/etc/mail/access.db
  cd /etc/mail
  makemap hash access.db < access 
 5.给域做邮件服务器
  vi /etc/mail/local-host-names
  server.com
 6.创建用户别名:
  vi /etc/mail/aliases
  hmily:  address1,address2 //一个账号,多个邮箱
  clinuxer zhang3  //发送给zhang3的邮件,实际是发给clinuxer
  maillistgroup hmily,clinuxer //邮件列表

  创建aliases.db数据库
  cd /etc
  newaliases
 7.Sendmail服务器的虚拟主机功能
  vi /etc/mail/virtusertable
  someone@localdomain.tst clinuxer //本来应发给someone@localdomain.tst 

      的邮件发送给本机用户clinuxer
  @otherdomain.com test@localdomain.tst //所有发往@otherdomain.com邮件都会被

       发送到test@localdomain.tst
  建立虚拟域数据库
  cd /etc/mail
  makemap hash virtusertable.db < virtusertable
 8.安装dovecot服务器(POP3、IMAP)
  (1).安装:
    rpm -ivh dovecot-*.rpm
  (2).打开POP3和IMAP支持
   vi /etc/dovecot.conf
   #protocols=imap imaps pop3 pop3s //去掉"#"号
  (3).重新启动
   service dovecot restart
  

Postfix邮件服务器安装与配置
 1.检查邮件服务器是否安装与安装它
  rpm -qa |grep postfix
  rpm -ivh postfix-*.rpm
 2.postfix的配置文件
  /etc/postfix/main.cf  //主配置文件
  /etc/postfix/master.cf  //运行参数配置文件
  /etc/postfix/access  //存取控制文件
  /etc/postfix/aliases  //别名数据库
 3.主配置文件
  vi /etc/postfix/main.cf
  myhostname=clinuxer.localdomain.tst //设置postfix主机名称
  inet_interfaces=all  //打开postfix的网络发送邮件支持功能
  myhostname=clinuxer.localdomain.tst  //设置postfix邮件主机的主机名
  mydomain=gdvcp.localdomain.tst  //设置postfix邮件主机的域名
  myorigin=$mydomain  //设置本机寄出的邮件所用的域名或主机名称
  mynetworks=192.168.1.0/24 //邮件主机只转发该子网中的客户端发来的邮件
  mynetworks-style=class  //postfix会根据邮件主机的IP地址得知它所在的 

     IP网络类型,从而开放它所在的IP网段 
  mynetworks-style=subnet  //根据邮件服务的网络端口上所设置的IP地址、子 

      网掩码来开放IP网段
  mynetworks-style=host  //postfix开放本机的转发权限
  mydestination=$mydomain,$myhostname //设置允许接收的邮件
  relay_domains=$mydestination //指定允许中转邮件的域名
 4.虚拟别名域的配置
  1).编辑主配置文件
  vi /etc/postfix/main.cf
  virtual_aliases_domains=csoftz.cn,localdomain.tst
  virtual_aliases_maps=hash:/etc/postfix/virtual_domains  
  2).编辑配置文件/etc/postfix/virtual_domains
  vi /etc/postfix/virtual_domains
  @csoftz.cn  @localdomain.tst
  sales@localdomain.tst clinuxer
  3).执行以下命令,使修改的配置文件生效
  postmap /etc/postfix/virtual_domains
  postfix reload
 5.用户别名的配置
  1).编辑主配置文件
  vi /etc/postfix/main.cf
  alias_maps=hash:/etc/aliases
  alias_database=hash:/etc/aliases
  2).编辑/etc/postfix/virtual_aliases
  vi /etc/postfix/virtual_aliases
  team1:  user1,user2,user3,user4  //发给team1的,都转发给user 
  team2:  :include: /etc/mail/team2user //发给team2r ,转给文件中用户
  clinuxer jacker   //clinuxer是jacker的别名
  fayero:  jackie,test@localdomail.tst //fayero是后两个的别名
  3).执行命令使修改的配置文件生效
  postalias /etc/postfix/virtual_aliases
  postfix reload
 6.SMTP认证的配置
  1).Cyrus-SASL认证包的安装
  rpm -ivh cyrus-sasl-*.rpm
  2).Cyrus-SASL v2的密码验证机制
  saslauthd -v  //查看当前系统中cyrus-sasl v2所支持的密码认证机制
  MECH=shadow(getpwent,kerberos5,pam,rimap,ldap,)  //采用shadow认证机制
  3).测试cyrus-sasl v2的认证功能
  ps aux | grep saslauthd  //查看saslauthd是否已经运行
  //如果没有发现进程,财用下面的命令启动进程并设置开机自动启动
  chkconfig --level 345 saslauthd on
  /etc/init.d/saslauthd start
  //用下面的命令测试saslauthd进程的认证功能
  /usr/sbin/testsaslauthd -u clinuxer -p '123456'
 7.设置postfix启用SMTP认证
  vi /etc/postfix/main.cf
  smtpd_sasl_auth_enable=yes
  broken_sasl_auth_clients=yes
  smtpd_client_restrictions=permit_sasl_authenticated
  smtpd_sasl_security_options=noanonymous
  
  smtpd_sasl_local_domain=''
  smtpd_recipient_restrictions=
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination
 8.测试SMTP认证是否成功
  1).计算用户名和密码
  perl -MMIME::Base64 -e 'print encode_base64("clinuxer");'
  perl -MMIME::Base64 -e 'print encode_base64("mypassword");'
  2).登录测试
  telnet server.localdomain.tst 25
 9.postfix的启动,停止,重启
  /etc/rc.d/init.d/postfix start
  /etc/rc.d/init.d/postfix stop
  /etc/rc.d/init.d/postfix restart
 10.安装dovecot服务和配置
  rpm -ivh perl-DBI-*.rpm
  rpm -ivh mysql-*.rpm
  rpm -ivh postgresql-libs-*.rpm
  rpm -ivh dovecot-*.rpm
  
  vi /etc/dovecot.conf
  protocols=imap imaps pop3 pop3s
  protocol imap {
   listen=*:10134
   ssl_listen=*:10943
  }
  protocol pop3 {
   listen=*:10110
  }   
  
  service dovecot start  //启动服务
 11.cyrus-imapd服务的实现
  1).安装
  创建本地安装源
  新建文件rhel5.localinstall.repo,内容如下
  [rhel-localinstall]
  name=Red Hat Enterprise Linux 5.2 LocalInstall
  baseurl=file:///mnt/cdrom/Server/
  gpgcheck=1
  enabled=1
  gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
  
  导入key文件
  rpm --import /mnt/cdrom/RPM-GPG-KEY-redhat-beta
  rpm --import /mnt/cdrom/RPM-GPG-KEY-redhat-release

  开始安装
  rpm -ivh cyrus-imapd-*.rpm
  
  2).配置cyrus-imapd
  /etc/sysconfig/cyrus-imapd //启动cyrus-imapd服务的配置文件
  /etc/cyrus.cjonf //是cyrus-imapd服务的主要配置文件
  /etc/imapd.conf  //是cyrus-imapd服务中IMAP服务的配置文件
  //为使Postfix与cyrus-imapd整合在一起,在/etc/postfix/main.cf中加入
  mailbox_transport=lmtp:unix:/var/lib/imap/socket/lmtp
  
  3).为用户创建邮箱
  passwd cyrus  //为Cyrus-IMAP管理员账户cyrus设置密码
  /usr/bin/cyradm -u cyrus localhost   //使用cyradm管理工具为用户创建信箱 
  server.localdomain.tst>createmailbox user.clinuxer //为用户clinuxer创建信箱
  createmailbox user.clinuxer.Drafts //为用户clinuxer在其信箱下创建草稿箱 

  createmailbox user.clinuxer.Send //创建发件箱
  createmailbox user.clinuxer.Trash //创建垃圾箱
  setquota user.clinuxer 5210 //为用户clinuxer设置5MB的配额
  su -l cyrus -c /usr/lib/cyrus-imapd/quota //查看用户邮箱的使用情况
  /usr/bin/cyradm -u cyrus localhost //为电子邮件客户端设置权限
   deletemailbox user.clinuxer
   listacl user.clinuxer