RedHat el5.0 搭建 Postfix 邮件服务器系统
                       (postfix+cyrus-sasl2+courier-authlib+courier-imap+extmail+maildrop)
一、系统环境
       操作系统:rhel-5.2
       所需软件(按网上以前的文档,好多版本都找不到,只能找相近的,下面都是在实验后都可以使用的包2010/10/27)
      httpd-2.2.0.tar.bz2          架设web用于extman的后台管理,extmail 的web邮件收发
      php-5.2.14.tar.gz             Php 解释器,extman & extmail 需要使用php 
      mysql-5.1.37.tar.gz            用于存储虚拟域、虚拟账户信息
      postfix-2.4.5.tar.gz           邮件服务器系统的smtp服务器,充当MTA 
      cyrus-sasl-2.1.22.tar.gz         用于实现身份验证的 smtp 服务器
      courier-authlib-0.58.tar.bz2        实现带验证的 pop3 服务器
      courier-imap-4.2.0.tar.bz2         用于实现 pop3、imap 收邮件功能
       extmail-1.1.0.tar.gz             用于实现 webmail
       extman-0.2.5.tar.gz          用于邮件服务器的后台管理
       openssl-0.9.8e.tar.gz        提供安全的邮件服务器连接
       DBD-mysql-2.9008.tar.gz     用于解决依赖关系,extmail 将会用到
       Unix-Syslog-1.1.tar.gz       用于解决依赖关系,extmail 将会用到
       BerkeleyDB(db-4.5.20.tar.gz) 在编译postfix要使用
       maildrop-2.0.4.tar.bz2           用来代替postfix自带的MDA,是一个带有过滤功能的MDA
       pcre-7.2.tar.bz2                 用于安装maildrop

    系统禁用 selinux 
 
二、软件安装
      1、安装apache
       tar zxvf httpd-2.2.0.tar.gz
      cd httpd-2.2.0
      ./configure --prefix=/usr/local/apache --enable-so 
      make
      make install
      安装最主要的是mod_so模块httpd –l检测mod_so.c,目的是为了以模块方式加载php
 
     2、安装 mysql
      tar xvf mysql-5.1.37.tar.gz
      cd mysql-5.1.37
      ./configure -prefix=/usr/local/mysql
      make&&make install
      useradd mysql
      cp support-files/my-medium.cnf  /etc/my.cnf
      cd /usr/local/mysql
      /usr/local/mysql/bin/mysql_install_db  --user=mysql //初始化数据库
      chown -R root .
      chown -R mysql var
      chgrp -R mysql .
      echo "/usr/local/mysql/lib/mysql">>/etc/ld.so.conf
      ldconfig
      echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile
      source /etc/profile
      上面这几行红色的字,必须要添加,否则在安装过程中会出现很多错误,还在注意在/tmp目录下是否存在 mysql.sock 这个文件,如果没有的话,就要做一个链接了,避免mysql在启动时报错
     复制一个编译目录的脚本,以使 mysql 每次启动时都能自动运行,回到编译的目录mysql-5.1.37
     cp support-files/mysql.server /etc/rc.d/init.d/mysqld
     chkconfig --add mysqld
     chkconfig --level 35 mysqld on
     service mysqld start
 
   3、安装php
    tar –xvf php-5.2.14.tar.gz
   cd php-5.2.14
   ./configure -prefix=/usr/local/php -with-apxs2=/usr/local/apache/bin/apxs -with-mysql=/usr/local/mysql
   make&&make install 
   cp php.ini-dist /usr/local/php/lib/php.ini
    修改apache的配置文件 httpd.conf加上"AddType application/x-httpd-php .php,定位至 DirectoryIndex index.html ,修改为: DirectoryIndex index.php index.html
     在目录/usr/local/apache/htdocs下创建一个最简单的php测试文件,其内容为:
     vi test.php
           phpinfo();
      ?>  
    检查一下apache配置文件是否正确(/usr/local/apache/bin/apachectl -t),输出"Syntax OK"后就可以启动apache服务(/usr/local/apache/bin/apachectl start)。
     在浏览器上测试test.php,会看到php的信息
 
    4、安装 openssl
     tar zxvf openssl-0.9.8e.tar.gz
    ./config shared zlib
    make
    make test
    make install
    mv /usr/bin/openssl /usr/bin/openssl.OFF
    mv /usr/include/openssl /usr/include/openssl.OFF
    rm -rf /usr/lib/libssl.so
    ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/ssl/include/openssl /usr/include/openssl
    ln -sv /usr/local/ssl/lib/libssl.so.0.9.8 /usr/lib/libssl.so
    echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
    ldconfig  
    检查是否安装 openssl
     openssl version
      OpenSSL 0.9.8e 23 Feb 2007


     5、安装 courier-authlib
        tar jxvf courier-authlib-0.58.tar.bz2
        cd courier-authlib-0.58
       . /configure --prefix=/usr/local/authlib --without-authpam --without-authldap --without-authpwd --without-authpgsql    --with-authmysql --without-authshadow --without-authvchkpw --with-mysql-libs=/usr/local/mysql/lib/mysql --with-mysql-includes=/usr/local/mysql/include/mysql --with-redhat CFLAGS="-march=i686 -O2 -fexpensive-optimizations" CXXFLAGS="-march=i686 -O2 -fexpensive-optimizations"
         make && make install
        chmod 755 /usr/local/authlib/var/spool/authdaemon
         cp /usr/local/authlib/etc/authlib/authdaemonrc.dist /usr/local/authlib/etc/authlib/authdaemonrc
         cp /usr/local/authlib/etc/authlib/authmysqlrc.dist /usr/local/authlib/etc/authlib/authmysqlrc

         vi /usr/local/courier-authlib/etc/authlib/authdaemonrc
         authmodulelist="authmysql" 
         authmodulelistorig="authmysql"
         daemons=10 

       vi /usr/localcourier-authlib/etc/authlib/authmysqlrc
         MYSQL_SERVER localhost 
         MYSQL_PORT 3306
         MYSQL_USERNAME extmail
         MYSQL_PASSWORD extmail 
         MYSQL_SOCKET /tmp/mysql.sock
         MYSQL_DATABASE extmail
         MYSQL_USER_TABLE mailbox 
         MYSQL_CRYPT_PWFIELD password
         MYSQL_UID_FIELD '2525'
         MYSQL_GID_FIELD '2525' 
         MYSQL_LOGIN_FIELD username 
         MYSQL_HOME_FIELD concat('/var/mailbox/',homedir) 
         MYSQL_NAME_FIELD name 
         MYSQL_MAILDIR_FIELD concat('/var/mailbox/',maildir) 
         注:其中 2525,2525为postfix用户的UID和GID(这里可先设置id号,当建postfix用户时,可指定uid,gid要注意对应即可,这个文件中不能出现空格,或者会出现错误
          设置 courier-authlib 自启动
          cp courier-authlib.sysvinit /etc/init.d/courier-authlib
          chmod 755 /etc/init.d/courier-authlib 
          chkconfig --add courier-authlib
          chkconfig --level 2345 courier-authlib on 
          echo "/usr/local/authlib/lib/courier-authlib" >> /etc/ld.so.conf 
           ldconfig 
           service courier-authlib start

       6、安装 courier-sasl
         删除以前的rpm包以及相关目录,系统自带的与authlib配合不好
         rpm –qa | grep sasl 显示出已安装的都要删除
         rpm -e --nodeps cyrus-sasl-2.1.10-4 cyrus-sasl-plain-2.1.10-4 cyrus-sasl-md5-2.1.10-4 cyrus-sasl-devel-2.1.10-4 …
         rm -rf /usr/lib/sasl
         rm -rf /usr/lib/sasl2
         tar –xvf cyrus-sasl-2.1.22.tar.gz (使用2.1.21版本,在make时报错,网上查要sasl.patch补丁,也没启作用,最后还是选择了2.1.22版本)
         cd cyrus-sasl-2.1.22
./configure --enable-plain --enable-cram --enable-digest --enable-login --enable-sql --disable-anon --disable-ntlm --disable-gssapi --disable-krb4 --disable-otp --disable-srp --disable-srp-setpass --with-authdaemond=/usr/local/authlib/var/spool/authdaemon/socket
--with-mysql=/usr/local/mysql --with-mysql-includes=/usr/local/mysql/include/mysql --with-mysql-libs=/usr/local/mysql/lib/mysql
          make
          make install
          ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
          增加"/usr/local/lib"到你的"/etc/ld.so.conf",并执行ldconfig命令。
          vi /usr/local/lib/sasl2/smtpd.conf
          pwcheck_method: authdaemond
          log_level: 3
         mech_list: PLAIN LOGIN
          authdaemond_path:/usr/local/authlib/var/spool/authdaemon/socket
        注意,这个文件的编辑不要多写一个空格,否则会出现smtp验证不过的问题

     7、安装 Berkeley-DB
         tar zxvf db-4.5.20.tar.gz 
         cd db-4.5.20/build_unix
         ../dist/configure —prefix=/usr/local/BerkeleyDB
         make 
         make install
         mv /usr/inculde/db4 /usr/inculde/db4.OFF
         rm -rf /usr/inculde/db_cxx.h 
         rm -rf /usr/inculde/db.h
         rm -rf /usr/inculde/db_185.h 
         ln -s /usr/local/BerkeleyDB/include /usr/include/db4
         ln -s /usr/local/BerkeleyDB/include/db.h /usr/include/db.h
         ln -s /usr/local/BerkeleyDB/include/db_cxx.h /usr/include/db_cxx.h
         echo "/usr/local/BerkeleyDB/lib" >> /etc/ld.so.conf 
         ldconfig

      8、安装 postfix 
         groupadd -g 2525 postfix
         useradd -g postfix -u 2525 -s /sbin/nologin -M postfix
         groupadd -g 2526 postdrop
         useradd -g postdrop -u 2526 -s /bin/false -M postdrop
         service sendmail stop 
         mv /usr/sbin/sendmail /usr/sbin/sendmail.OFF
         mv /usr/bin/mailq /usr/bin/mailq.OFF 
         mv /usr/bin/newaliases /usr/bin/newaliases.OFF
         tar zxvf postfix-2.4.5.tar.gz
         cd postfix-2.4.5 
         make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql  -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/sasl2/include/sasl  -I/usr/local/BerkeleyDB/include -DUSE_TLS -I/usr/local/ssl/include/openssl ' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz  -lm    -L/usr/local/sasl2/lib    -lsasl2    -L/usr/local/BerkeleyDB/lib    -L/usr/local/ssl/lib -lssl -lcrypto'
          make
          make install
 
          tempdir: [/root/ postfix-2.4.5]
          config_directory: [/etc/postfix] 
          daemon_directory: [/usr/libexec/postfix]
          command_directory: [/usr/sbin]
          queue_directory: [/var/spool/postfix] 
          sendmail_path: [/usr/sbin/sendmail]
          newaliases_path: [/usr/bin/newaliases]
          mailq_path: [/usr/bin/mailq] 
          mail_owner: [postfix] 
          setgid_group: [postdrop] 
          html_directory: [no]
          manpages: [/usr/local/man] 
          readme_directory: [no]
          上面的选项全部保持默认,直接回车即可。 
         事先要执行:echo “/usr/local/ssl/lib” >> /etc/ld.so.conf
                 ldconig 避免出现错误

         生成别名二进制文件,这个步骤如果忽略,会造成 postfix 效率极低: 
         newaliases
         配置 postfix
         vi /etc/postfix/main.cf 
         myhostname = mail.wlq.com
         mydomain = wlq.com
         myorigin = $mydomain 
         inet_interfaces = all 
         mynetworks = 192.168.1.0/24, 127.0.0.0/8 
                         #================Virtual Setting ====================
          virtual_mailbox_base = /var/mailbox/ 
          virtual_mailbox_maps= mysql:/etc/postfix/mysql/mysql_virtual_mailbox_maps.cf 
          virtual_mailbox_domains=mysql:/etc/postfix/mysql/mysql_virtual_domains_maps.cf 
          virtual_alias_domains = 
          virtual_alias_maps = mysql:/etc/postfix/mysql/mysql_virtual_alias_maps.cf 
          virtual_uid_maps = static:2525
          virtual_gid_maps = static:2525 
          virtual_transport = virtual
          maildrop_destination_recipient_limit = 1
          maildrop_destination_concurrency_limit = 1 
                         #=================Quota Setting ==================== 
          message_size_limit = 14336000
          virtual_mailbox_limit = 20971520 
          virtual_create_maildirsize = yes
          virtual_mailbox_extended = yes
          virtual_mailbox_limit_maps 
          mysql:/etc/postfix/mysql/mysql_virtual_mailbox_limit_maps.cf 
          virtual_mailbox_limit_override = yes 
          virtual_maildir_limit_message = Sorry,the user's maildir has overdrawn his diskspace quota,please Tidy your mailbox and try again later. 
           virtual_overquota_bounce = yes 
                             #=================== Cyrus-sasl=====================
          broken_sasl_auth_clients = yes 
           smtpd_recipient_restrictions       =       permit_mynetworks,       permit_sasl_authenticated, reject_invalid_hostname,reject_non_fqdn_hostname,
reject_unknown_sender_domain,reject_non_fqdn_sender,
reject_non_fqdn_recipient,reject_unknown_recipient_domain, reject_unauth_pipelining,
reject_unauth_destination, permit
           smtpd_sasl_auth_enable = yes 
           smtpd_sasl_local_domain = $myhostname
           smtpd_sasl_security_options = noanonymous 
           smtpd_sasl_application_name = smtpd 
           smtpd_banner = Welcome to our $myhostname ESMTP, Warning:Version not Available! 
            local_recipient_maps = (也要填加这一条,我也是最后在web界面发邮件时老报local_recipient的错,填加这一条后就好了)
 
           # mkdir -p /etc/postfix/mysql
          cd /etc/postfix/mysql 
          vi mysql_virtual_alias_maps.cf
          user = extmail 
          password = extmail
          hosts = localhost
         dbname = extmail 
         table = alias
         select_field = goto
         where_field = address 
 
         vi mysql_virtual_mailbox_limit_maps.cf
         user = extmail
         hosts = localhost 
         dbname = extmail
         table = mailbox
        select_field = quota
        where_field = username
     
       vi mysql_virtual_domains_maps.cf
       user = extmail
       password = extmail
       hosts = localhost
       dbname = extmail
        table = domain
        select_field = description
        where_field = domain
       vi mysql_virtual_mailbox_maps.cf
        user = extmail 
        password = extmail
        hosts = localhost
        dbname = extmail 
        table = mailbox
        select_field = maildir
        where_field = username 
 
     9、安装 Courier-IMAP
        tar –xvjf courier-imap-4.2.0.tar.bz2
        cd courier-imap-4.2.0
       ./configure --prefix=/usr/local/imap --with-redhat --enable-unicode --disable-root-check --with-trashquota CPPFLAGS='-I/usr/local/ssl/include/openssl -I/usr/local/authlib/include' LDFLAGS='-L/usr/local/authlib/lib/courier-authlib' COURIERAUTHCONFIG='/usr/local/authlib/bin/courierauthconfig'
        make
        make install
        cp /usr/local/imap/etc/imapd.dist /usr/local/imap/etc/imapd
        cp /usr/local/imap/etc/imapd-ssl.dist /usr/local/imap/etc/imapd-ssl
        cp /usr/local/imap/etc/pop3d.dist /usr/local/imap/etc/pop3d 
        cp /usr/local/imap/etc/pop3d-ssl.dist /usr/local/imap/etc/pop3d-ssl
        vi /usr/local/imap/etc/pop3d
        POP3DSTART=YES
        注:如果你想为用户提供 IMAP 服务,则需在"/usr/local/courier-imap/etc/imapd"文件中设置"IMAPDSTART=yes";其它类同;
        新建虚拟用户邮箱所在的目录,并将其权限赋予 postfix 用户: 
         mkdir -p /var/mailbox
         chown -R postfix /var/mailbox
         cp courier-imap.sysvinit /etc/rc.d/init.d/imapd 
         chmod 755 /etc/rc.d/init.d/imapd
         chkconfig --add imapd 
         chkconfig --level 2345 imapd on 
          service imapd start 
 
 10、安装 extmail
         tar –xvf extmail-1.1.0.tar.gz 
         mkdir -pv /var/www/extsuite
         mv extmail-1.1.0 /var/www/extsuite/extmail
         cp /var/www/extsuite/extmail/webmail.cf.default /var/www/extsuite/extmail/webmail.cf 
          vi /var/www/extsuite/extmail/webmail.cf  (下列选项为修改后的)
         SYS_MESSAGE_SIZE_LIMIT = 5242880 用户可以发送的最大邮件
         SYS_USER_LANG = zh_CN
         SYS_MAILDIR_BASE = /var/mailbox/  用户邮件的存放目录
         SYS_MYSQL_USER = extmail
         SYS_MYSQL_PASS = extmail
         以上两句句用来设置连接数据库服务器所使用用户名、密码和邮件服务器用到的数据库
         SYS_MYSQL_HOST = localhost    指明数据库服务器主机名
         SYS_MYSQL_SOCKET = /tmp/mysql.sock 连接数据库的 sock 文件位置
         SYS_MYSQL_TABLE = mailbox 
         SYS_MYSQL_ATTR_USERNAME = username 
         SYS_MYSQL_ATTR_DOMAIN = domain
         SYS_MYSQL_ATTR_PASSWD = password
         以上用来指定验正用户登录里所用到的表,以及用户名、域名和用户密码分别对应的表中列的名称
         SYS_AUTHLIB_SOCKET = /usr/local/courier-authlib/var/spool/authdaemon/socket
         指明 authdaemo socket 文件的位置


          apache 相关配置 
          [root @test root] # vi /usr/local/apache/conf/httpd.conf
         将 User daemon 
              Group daemon
         改为 
               User postfix
               Group postfix 
          将 Include conf/extra/httpd-vhosts.conf
          前的注释去掉,打开 apache 的虚拟主机功能。
          # virtual hosts 
          Include conf/extra/httpd-vhosts.conf 
           vi /usr/local/apache/conf/extra/httpd-vhosts.conf
         
         ServerName mail.wlq.com
         DocumentRoot /var/www/extsuite/extmail/html/
         ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
         Alias /extmail /var/www/extsuite/extmail/html
       

        
         Options Indexes FollowSymLinks
         AllowOverride None
         Order allow,deny
         Allow from all
      

 
     11、安装 Unix-Syslog-1.1.tar.gz和DBD-mysql-2.9008.tar.gz
         extmail 将会用到 perl 的 DBD::Mysql 和 Unix::syslogd 功能, 您可以去http://search.cpan.org下载 
         tar -zxvf Unix-Syslog-1.1.tar.gz
         cd Unix-Syslog-1.1
         perl Makefile.PL 
         make
         make install
 
          tar –xvzf DBD-mysql-2.9008.tar.gz 
          cd DBD-mysql-2.9008
          perl Makefile.PL
          make && make install 
          到此为止,Webmail 已经可以使用了,可以在浏览器中输入指定的虚拟主机的 名称进行访问,http://mail.wlq.com (做测试可以事先在机子上解析这个域名,加到hosts,也可以搭个dns)
 

       RedHat el5.0 搭建 Postfix 邮件服务器系统<一>_第1张图片

    12、安装extman-0.2.5.tar.gz
       tar –xvzf extman-0.2.5.tar.gz
       mv extman-0.2.5 /var/www/extsuite/extman
       vi /var/www/extsuite/extman/webman.cf (修改后的选项)
      SYS_MAILDIR_BASE = /var/mailbox/
      SYS_MYSQL_SOCKET = /tmp/mysql.sock
      使用 extman 源码目录下 docs 目录中的 extmail.sql 和 init.sql 建立数据库:
      cd /var/www/extsuite/extman/docs
      /usr/local/mysql/bin/mysql -u root    < extmail.sql
      /usr/local/mysql/bin/mysql    -u root -p < init.sql
      Enter password: 输入 mysql root 用户的密码 
     修改 cgi 目录的属主:
       chown -R postfix.postfix /var/www/extsuite/extman/cgi/
      如果 extman 访问数据库权限不足的话,可采用以下命令将新生成的数据库赋予 webman
      /usr/local/mysql/bin/mysql
      mysql> use extmail;
      mysql>   GRANT   all   privileges   on   extmail.*   TO   webman@localhost   IDENTIFIED   BY  'webman'; 
      mysql>   GRANT   all   privileges   on   extmail.*   TO   [email protected]   IDENTIFIED   BY   'webman'; 
      mysql> quit
      在 apache 的虚拟主机配置文件中 Extmail 的虚拟主机部分,再添加如下两行:
      vi /usr/local/apache/conf/extra/httpd-vhosts.conf 
      ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
      Alias /extman /var/www/extsuite/extman/html
      启动所有服务: (已启动的可以重启下)
       service mysqld start
       /usr/local/apache/bin/apachectl start
       service courier-authlib start
       service imapd start 
        postfix start
       在 IE 浏览器中输入http://mail.wlq.com/extman ,进入邮件服务器的后台,添加域与添加 用户邮箱。默认管理帐号为:[email protected] 密码为:extmail*123*。我这里添加了一 个 wlq.com 域和一个用户邮箱:[email protected]。至于开通邮件服务器自动注册邮箱服务,只需要编辑该域,将"允许自由注册邮箱"前面打上勾即可。 
         第一次登录可能出现如下错误:
  

  

         这是由于 /tmp/extman 目录的原因,新建之即可,然后将该目录权限设置为 777
       (1) 如果您安装后无法正常显示校验码,安装 perl-GD 模块会解决这个问题。如果想简单您   可   以   到   以   下   地   址   下   载   适   合   您   的包   ,   安   装平   台   的    rpm即可 http://dries.ulyssis.org/rpm/packages/perl-GD/info.html (我用的perl-GD-2.35-1.el5.rf.i386.rpmperl-GD-2.35-1.el5.rf.i386.rpm)
       (2) extman-0.2.2 自带了图形化显示日志的功能;此功能需要 rrdtool 的支持,您需要安装
这些模块才可能正常显示图形日志。 
         接下来安装图形日志的运行所需要的软件包 Time::HiRes、File::Tail 和 rrdtool,其中前两个
包 您 可 以 去   http://search.cpan.org   搜 索 并 下 载 获 得 , 后 一 个 包 您 可 以 到 http://oss.oetiker.ch/rrdtool/pub/?M=D 下载获得; 注意安装顺序不能改换。 
 
        下面安装 Time::HiRes 、File::Tail 和 rrdtool 
         tar zxvf Time-HiRes-1.9721.tar.gz
        cd Time-HiRes-1.9721 
        perl Makefile.PL
        make
        make test 
        make install
 
          tar zxvf File-Tail-0.99.3.tar.gz
          cd File-Tail-0.99.3 
          perl Makefile.PL
          make
          make test
          make install
         在安装 rrdtool 之前,就确定你的系统中是否已经安装 tcl、tcl-devel、libart、libart-devel
         tar zxvf rrdtool-1.2.23.tar.gz
         cd rrdtool-1.2.23
         ./configure --prefix=/usr/local/rrdtool 
         make
         make install
         创建必要的符号链接(Extman 会到这些路径下找相关的库文件) 
         ln –s /usr/local/rrdtool/lib/perl/5.8.8/i386-linux-thread-multi/auto/RRDs/RRDs.so /usr/lib/perl5/5.8.5/i386-linux-thread-multi/
          ln -sv /usr/local/rrdtool/lib/perl/5.8.8/RRDp.pm /usr/lib/perl5/5.8.8
          ln -sv /usr/local/rrdtool/lib/perl/5.8.8/i386-linux-thread-multi/RRDs.pm /usr/lib/perl5/5.8.8
         复制 mailgraph_ext 到/usr/local,并启动
          cp -r /var/www/extsuite/extman/addon/mailgraph_ext /usr/local
          /usr/local/mailgraph_ext/mailgraph-init start
           /usr/local/mailgraph_ext/qmonitor-init start
          添加到自动启动
          echo "/usr/local/mailgraph_ext/mailgraph-init start" >> /etc/rc.local
          echo "/usr/local/mailgraph_ext/qmonitor-init start" >> /etc/rc.local
        接下来就可以到 extman里面的全部东西了
         http://mail.wlq.com/extman
    

        RedHat el5.0 搭建 Postfix 邮件服务器系统<一>_第2张图片

        

        RedHat el5.0 搭建 Postfix 邮件服务器系统<一>_第3张图片

 
       测试:在web界面中收信,发信都正常,用telnet测试下smtp和pop3
       用户名:[email protected]       密码:ceshi
       用下列命令获得BASE64 编码
       [root@mail ~]# perl -e 'use MIME::Base64;print encode_base64("ceshi\@wlq.com")'
        Y2VzaGlAd2xxLmNvbQ==
       [root@mail ~]# perl -e 'use MIME::Base64;print encode_base64("ceshi")'
        Y2VzaGk=
 
       telnet localhost 25
       Trying 127.0.0.1...
       Connected to wlq.com (127.0.0.1).
       Escape character is '^]'.
       220 Welcome to our mail.wlq.com ESMTP,Warning:Version not Available!
       ehlo mail.wlq.com
       250-mail.wlq.com
       250-PIPELINING
       250-SIZE 14336000
       250-VRFY
       250-ETRN
       250-AUTH PLAIN LOGIN
       250-AUTH=PLAIN LOGIN
       250-ENHANCEDSTATUSCODES
       250-8BITMIME
       250 DSN
       auth login
       334 VXNlcm5hbWU6
       Y2VzaGlAd2xxLmNvbQ==
       334 UGFzc3dvcmQ6
       Y2VzaGk=
       235 2.0.0 Authentication successful
       quit
       221 2.0.0 Bye
       Connection closed by foreign host.
 
       telnet localhost 110
       Trying 127.0.0.1...
       Connected to wlq.com (127.0.0.1).
       Escape character is '^]'.
       +OK Hello there.
       user [email protected]
       +OK Password required.
       pass ceshi
       +OK logged in.
        quit
       +OK Bye-bye.
       Connection closed by foreign host. (上面红色部分为手动输入)

       测试authlib
        /usr/local/authlib/sbin/authtest -s login [email protected] ceshi
        Authentication succeeded.
         Authenticated: [email protected] (uid 2525, gid 2525)
         Home Directory: /var/mailbox/wlq.com/ceshi
          Maildir: (none)
          Quota: (none)
         Encrypted Password: $1$Zv/N0qB1$kMAqtkM2L5CiVt8d05FzU/
          Cleartext Password: ceshi
           Options: (none)
 
     13、安装maildorp-2.0.4.tar.bz2
        首先将courier-authlib的头文件及库文件链接至/usr目录(编译maildrop时会到此目录下找此些相关      的文件):
        ln -sv /usr/local/authlib/bin/courierauthconfig   /usr/bin
        ln -sv /usr/local/authlib/include/*   /usr/include

        maildrop需要pcre的支持,因此,接下来将首先安装pcre
        tar jxvf pcre-7.2.tar.bz2
       cd pcre-7.2
        ./configure
       make  
       make check
       make install

        groupadd -g 1001 vmail
        useradd -g vmail -u 1001 -M -s /sbin/nologin vmail
        tar jxvf maildrop-2.0.4.tar.bz2
        cd maildrop-2.0.4
        ./configure  --enable-sendmail=/usr/sbin/sendmail  --enable-trusted-users='root vmail'  --enable-syslog=1 --enable-maildirquota  --enable-maildrop-uid=1001  --enable-maildrop-gid=1001 --with-trashquota --with-dirsync 
        make
        make install

        安装过程中要有这个错误/usr/bin/install: cannot stat `makedat/makedatprog': No such file or directory时,应检查gbdm和gbdm-devel包,安这两包后就可以了
 

         检查安装结果,请确保有"Courier Authentication Library extension enabled."一句出现:
         # maildrop -v
         maildrop 2.0.4 Copyright 1998-2005 Double Precision, Inc.
         GDBM extensions enabled. 
          [color=DarkOrange]Courier Authentication Library extension enabled.[/color]
          Maildir quota extension enabled.
          This program is distributed under the terms of the GNU General Public
           License. See COPYING for additional information.

         vi /etc/maildroprc (新建)
         logfile "/var/log/maildrop.log"
         touch /var/log/maildrop.log
        chown vmail.vmail /var/log/maildrop.log 
         配置 postfix,
         vi /etc/postfix/master.cf
        启用下面这两行,将前面的注释符号去掉 
        maildrop    unix    -             n             n              -             -             
         pipe  flags=DRhu user=vmail                   argv=/usr/local/maildrop/bin/maildrop -d ${recipient}
 
         vi /etc/postfix/main.cf
        将 virtual_transport = virtual 修改为  virtual_transport = maildrop 
         virtual_uid_maps = static:1001
         virtual_gid_maps = static:1001
         vi /usr/local/ authlib/etc/authlib/authmysqlrc 
        下面两个修改为
         MYSQL_UID_FIELD  ‘1001’
         MYSQL_GID_FIELD   ‘1001’

         vi /usr/local/apache/conf/httpd.conf (下面选项修改为如下的值)
         User vmail 
         Group vmail
         修改用户邮件所在目录 /var/mailbox 和 extman 的临时目录 /tmp/extman 的属主和属组 
         chown -R vmail.vmail /var/mailbox
         chown -R vmail.vmail /tmp/extman

          重新启动 apache 和 postfix,在web界面发送一份邮件测试,tail -f /var/log/maillog中看到的日志,
Oct 27 09:45:05 mail postfix/pipe[21265]: 71D4C3674EE: to=, relay=maildrop, delay=486, delays=485/0.08/0/0.25, dsn=4.3.0, status=deferred (temporary failure. Command output: /usr/local/bin/maildrop: Unable to open mailbox. )
Oct 27 09:45:35 mail maildrop[21273]: Unable to open mailbox.
           报错,在网上找了找,发现在/etc/maildroprc中少了一行,加了这行,测试就OK
           [root@mail mailbox]# vi /etc/maildroprc 
           logfile "/var/log/maildrop.log"
           to "$HOME/Maildir" (新加的一行)
           再测试:tail –f /var/log/maillog
Oct 27 09:47:16 mail postfix/pipe[21306]: 8D2D03674F9: to=, relay=maildrop, delay=0.96, delays=0.2/0.05/0/0.7, dsn=2.0.0, status=sent (delivered via maildrop service)
Oct 27 09:47:16 mail postfix/qmgr[20843]: 8D2D03674F9: removed
          [root@mail mailbox]# tail -f /var/log/maildrop.log
          Date: Wed Oct 27 09:46:33 2010
          From:
          Subj: 
           File: /var/mailbox/wlq.com/ceshi/Maildir     


         测试成功,说明Maildrop安装成功,到此为止,邮件系统的搭建基本完成,接下来安装反病毒和反垃圾邮件的相关组件,下篇接着弄。
 
          非常感谢网上搭建邮件系统的前辈们,这也是根据他们的文档自己做了一次搞下来的,同时自己在做的过程中也记录下做个备份。
         参考:http://bbs.chinaunix.net/archiver/tid-1419582.html
                     http://sery.blog.51cto.com
                     http://blog.5ilinux.com/archives/mail/