设为首页 收藏本站
查看: 1435|回复: 0

[经验分享] RedHat el5.0 搭建 Postfix 邮件服务器系统

[复制链接]

尚未签到

发表于 2015-11-24 11:45:25 | 显示全部楼层 |阅读模式
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),输出&quot;Syntax OK&quot;后就可以启动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 &quot;/usr/local/ssl/lib&quot; >> /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=&quot;-march=i686 -O2 -fexpensive-optimizations&quot; CXXFLAGS=&quot;-march=i686 -O2 -fexpensive-optimizations&quot;
         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=&quot;authmysql&quot;
         authmodulelistorig=&quot;authmysql&quot;
         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要注意对应即可,这个文件中不能出现空&#26684;,或者会出现错误
          设置 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 &quot;/usr/local/authlib/lib/courier-authlib&quot; >> /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
          增加&quot;/usr/local/lib&quot;到你的&quot;/etc/ld.so.conf&quot;,并执行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
        注意,这个文件的编辑不要多写一个空&#26684;,否则会出现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 &quot;/usr/local/BerkeleyDB/lib&quot; >> /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 服务,则需在&quot;/usr/local/courier-imap/etc/imapd&quot;文件中设置&quot;IMAPDSTART=yes&quot;;其它类同;
        新建虚拟用户邮箱所在的目录,并将其权限赋予 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
          <VirtualHost *:80>
         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
        </VirtualHost>
         <Directory &quot;/var/www/extsuite&quot;>
         Options Indexes FollowSymLinks
         AllowOverride None
         Order allow,deny
         Allow from all
       </Directory>

     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)

DSC0000.jpg
      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   webman@127.0.0.1   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 ,进入邮件服务器的后台,添加域与添加 用户邮箱。默认管理帐号为:root@extmail.org 密码为:extmail*123*。我这里添加了一 个 wlq.com 域和一个用户邮箱:ceshi@wlq.com。至于开通邮件服务器自动注册邮箱服务,只需要编辑该域,将&quot;允许自由注册邮箱&quot;前面打上勾即可。
         第一次登录可能出现如下错误:
  
DSC0001.jpg
  这是由于 /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 &quot;/usr/local/mailgraph_ext/mailgraph-init start&quot; >> /etc/rc.local
          echo &quot;/usr/local/mailgraph_ext/qmonitor-init start&quot; >> /etc/rc.local
        接下来就可以到 extman里面的全部东西了
         http://mail.wlq.com/extman
   
DSC0002.jpg
  
DSC0003.jpg
  
       测试:在web界面中收信,发信都正常,用telnet测试下smtp和pop3
       用户名:ceshi@wlq.com       密码:ceshi
       用下列命令获得BASE64 编码
       [iyunv@mail ~]# perl -e 'use MIME::Base64;print encode_base64(&quot;ceshi\@wlq.com&quot;)'
        Y2VzaGlAd2xxLmNvbQ==
       [iyunv@mail ~]# perl -e 'use MIME::Base64;print encode_base64(&quot;ceshi&quot;)'
        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 '^]'.
       &#43;OK Hello there.
       user ceshi@wlq.com
       &#43;OK Password required.
       pass ceshi
       &#43;OK logged in.
        quit
       &#43;OK Bye-bye.
       Connection closed by foreign host. (上面红色部分为手动输入)
  测试authlib
        /usr/local/authlib/sbin/authtest -s login ceshi@wlq.com ceshi
        Authentication succeeded.
         Authenticated: ceshi@wlq.com (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包,安这两包后就可以了

  检查安装结果,请确保有&quot;Courier Authentication Library extension enabled.&quot;一句出现:
         # maildrop -v
         maildrop 2.0.4 Copyright 1998-2005 Double Precision, Inc.
         GDBM extensions enabled.
          Courier Authentication Library extension enabled.
          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 &quot;/var/log/maildrop.log&quot;
         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 (下面选项修改为如下的&#20540;)
         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=<ceshi@wlq.com>, 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 toopen mailbox. )
Oct 27 09:45:35 mail maildrop[21273]: Unable to open mailbox.
           报错,在网上找了找,发现在/etc/maildroprc中少了一行,加了这行,测试就OK
           [iyunv@mail mailbox]# vi /etc/maildroprc
           logfile &quot;/var/log/maildrop.log&quot;
           to &quot;$HOME/Maildir&quot; (新加的一行)
           再测试:tail –f /var/log/maillog
Oct 27 09:47:16 mail postfix/pipe[21306]: 8D2D03674F9: to=<ceshi@wlq.com>, 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
          [iyunv@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.iyunv.com/archiver/tid-1419582.html
                     http://sery.blog.iyunv.com
                     http://blog.5ilinux.com/archives/mail/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-143043-1-1.html 上篇帖子: [python]将中缀表达式(infix)转换为后缀表达式(postfix) 下篇帖子: Postfix邮件服务器搭建(二)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表