接上期,通过前4期,我们已经部署完成了 DNS服务、MySQL服务、Apache服务 、PHP服务,环境方面,已经足以支撑我们部署接下来的 Postfix服务、Dovecot服务、Postfixadmin管理端,下面,我们就开始着手部署后面三个关键性服务,也是我们本专题的核心。


六、部署 Postfix 服务

    1、安装postfix依赖包

    [root@Mail ~]# yum -y install cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain

    2、下载 postfix 安装包

    [root@Mail ~]# wget -c ftp://ftp.cuhk.edu.hk/pub/packages/mail-server/postfix/experimental/postfix-3.4-20181105.tar.gz

    3、解压,并进入目录

    [root@Mail ~]# tar -zxvf postfix-3.4-20181105.tar.gz

    [root@Mail postfix-3.4-20181105]# cd postfix-3.4-20181105

    4、创建postfix服务工作所需的用户及用户组

    [root@Mail postfix-3.4-20181105]# groupadd -g 2000 postfix

    [root@Mail postfix-3.4-20181105]# useradd -g postfix -u 2000 -M -s /sbin/nologin postfix

    这里,我们将用户UID和用户组GID均指定为2000

    5、开始编译

    [root@Mail postfix-3.4-20181105]# make -f Makefile.init makefiles \
     CCARGS="-DUSE_TLS -DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl" \
     AUXLIBS_MYSQL="-L/usr/local/mysql/lib -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2  -lssl -lcrypto"

    [root@Mail postfix-3.4-20181105]# make

    注意:在执行此步骤时,可能会如下出现2个报错

        (1)、dict_mysql.c:171:19: 致命错误:mysql.h:没有那个文件或目录   :如下图

        图片.png

        出现这个报错的原因为:我们在生成 Makefile 文件时,指定的MySQL头文件目录有误,可据自己MySQL的basedir来定义头文件目录。

        (2)、/bin/ld: 找不到 -lmysqlclient    :如下图

        图片.png

        出现这个报错的原因为:我们在生成Makefile 文件时,指定的MySQL lib库文件目录错误,也可根据自己的MySQL basedir来定义头文件目录。

    无报错后进行下一步:

    [root@Mail postfix-3.4-20181105]# make install

    此步骤会出现以下内容的交互式会话,提示我们输入部分目录,其中大部分保持默认就行。

        install_root: [/]
        tempdir: [/root/postfix-3.4-20181105]
        config_directory: [/etc/postfix]

        command_directory: [/usr/sbin]

        daemon_directory: [/usr/libexec/postfix]
        data_directory: [/var/lib/postfix]

        html_directory: [no]

        mail_owner: [postfix]

        mailq_path: [/usr/bin/mailq]

        manpages: [/usr/local/man]

        newaliases_path: [/usr/bin/newaliases]

        queue_directory: [/var/spool/postfix]

        readme_directory: [no]

        sendmail_path: [/usr/sbin/sendmail]
        setgid_group: [postdrop]

        shlib_directory: [no]

        meta_directory: [/etc/postfix]

        执行完成此步骤后,postfix服务安装完成。

    6、配置postfix服务

    [root@Mail postfix-3.4-20181105]# cd /etc/postfix/

    配置文件都放在 /etc/postfix 目录中,如图

    图片.png

    而我们要修改的配置文件其实就只有 main.cf 文件和 master.cf 文件

    [root@Mail postfix]# vim main.cf

    图片.png  

    如图,main.cf 文件主要定义一些 postfix 服务常用的工作目录、网络接口、域名等,目录部分大部分不用修改,保持默认就行,但是自己又特殊需要的话,可修改为自定义目录。

    不过,需要在该配置文件中加入下面三行,来定义虚拟邮件目录、UID号个GID号

    virtual_mailbox_base = /wdata/vmail
    virtual_uid_maps = static:2000
    virtual_gid_maps = static:2000

    此外,为了连接MySQL数据库,还需加入以下三行,此三行中的 mysql-virtual-*.cf 文件需要自行创建来定义 MySQL 数据库的连接信息,写法格式可参照 README_FILES/MYSQL_README 文件、proto/MYSQL_README.html 文件和 proto/mysql_table 文件

    virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
    virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
    virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual-alias-maps.cf

    图片.png

    如图,为mysql-virtual-*.cf文件

    图片.png

    图片.png

    [root@Mail postfix]# vim master.cf

    图片.png

    如图,master.cf 文件主要定义了一些常用的协议,这个一般不用修改,保持默认,在这里,我们取消 submission 和 smtps 前面的注释。

    7、启动 postfix 服务

    [root@Mail postfix]# /usr/sbin/postfix start

    图片.png

    如图,表示启动成功

    图片.png

    图片.png


到此为止,postfix 服务部署完成,下期我们开始部署 Dovecot 服务。


未完待续。。。。。。