编译安装Postfix


前期准备工作

[root@mail ~]# rpm -qa | grep cyrus
cyrus-sasl-plain-2.1.22-5.el5_4.3
cyrus-sasl-devel-2.1.22-5.el5_4.3
cyrus-sasl-lib-2.1.22-5.el5_4.3
cyrus-sasl-2.1.22-5.el5_4.3

1.停用sendmail服务,以避免冲突

[root@mail ~]# service  sendmail  stop
[root@mail ~]# chkconfig  --level  35  sendmail  off

2.获得源码文件包

  • 源程序包:postfix-2.4.6.tar.gz
  • VDA补丁包:postfix-2.4.6-vda-ng.patch.gz

vda补丁用于支持对虚拟邮件用户设置邮箱空间配额 postfix用户的UID为1000,所属组为postfix,附加组为postdrop,且不创建宿主目录,禁止直接登录到本地系统

3.添加运行邮件系统的帐号

用户帐号 postfix ,组帐号 postfix、postdrop

[root@mail ~]# groupadd -g 1200 postdrop
[root@mail ~]# groupadd -g 1000 postfix
[root@mail ~]# useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin  postfix

4.解压释放源码包、合并VGA补丁

[root@mail ~]# tar zxvf postfix-2.4.6.tar.gz
[root@mail ~]# gunzip postfix-2.4.6-vda-ng.patch.gz
[root@mail ~]# cd postfix-2.4.6
[root@mail postfix-2.4.6]# patch  -p1  <  ../postfix-2.4.6-vda-ng.patch
  • postdrop组的gid为1200,postfix用户的uid、gid为1000 —— 主要是为了和普通的系统用户区分开,实际上用什么数字并没有严格的限制
  • 要在postfix的源码目录下打补丁,执行: patch -p1 < /补丁文件所在目录/postfix-2.4.6-vda-ng.patch

5.预配置编译参数

  • 注意参考 README_FILES 子目录中的说明文档
  • 添加MySQL数据库查询、SASL认证支持
[root@mail postfix-2.4.6]# make makefiles \
> 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql \
> -DUSE_SASL_AUTH \
> -DUSE_CYRUS_SASL -I/usr/include/sasl' \
> 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient  -lz  -lm  \
> -L/usr/lib/sasl2  -lsasl2 '

postfix--MYSQL--README

Postfix Installation From Source Code

  • CCARGS参数:为C语言编译器提供额外的参数(C-language Compiler Arguments ),-I选项(字母i的大写)指出额外的头文件的存放目录
  • AUXLIBS参数:指出位于标准位置之外的额外/辅助的函数库(Auxiliaries Libraries),-lmysqlclient、-lz、-lm、-lsasl2中的”l“为字母L的小写 在安装过程中,会提示用户设置一些参数,可以直接回车,接受默认值即可,至此即可完成postfix的安装
  • 配置postfix支持TLS加密传输:
[root@mail postfix-2.4.6]# make makefiles \
> 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql \
> -DUSE_SASL_AUTH \
> -DUSE_TLS \
> -DUSE_CYRUS_SASL -I/usr/include/sasl' \
> 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient  -lz  -lm  \
> -L/usr/lib/sasl2  -lsasl2 \
> -lssl -lcrypto '

Postfix的主要目录

  • 配置文件目录:/etc/postfix/
  • 服务程序目录:/usr/libexec/postfix/
  • 邮件队列目录:/var/spool/postfix/*
    • incoming-传入:刚接收到的邮件
    • active-活动:正在投递的邮件
    • deferred-推迟:以前投递失败的邮件
    • hold-约束:被阻止发送的邮件
    • corrupt-错误:不可读或不可分析的邮件
  • 邮件管理程序目录:/usr/sbin/*
    • postalias:用于构造、修改和查询别名表
    • postmap:用于构造、修改或者查询查询表
    • postconf:用于显示和编辑main.cf配置文件
    • postfix:用于启动、停止postix,要求root用户权限
    • postqueue-用于管理邮件队列,一般用户使用
    • postsuper-用于管理邮件队列,要求有root用户权限
After any changes are made to Postfix configuration files, 
it’s normally best to reload them into the daemon with the following command:
# /etc/init.d/postfix reload

Postfix的配置文件

  • /etc/postfix/master.cf
    • master主程序的配置文件
  • /etc/postfix/main.cf
    • postfix服务的配置文件
  • 辅助配置工具 postconf
    • 执行 postconf ,查看当前的有效配置
    • 执行 postconf -n ,查看非默认配置
    • 执行 postconf -d ,查看默认配置

man--postconf(1)

man--postconf(5)

简化配置文件

[root@mail ~]# cd  /etc/postfix
[root@mail postfix]# postconf -n > main2.cf
[root@mail postfix]# mv main.cf main.cf.bak 
[root@mail postfix]# mv main2.cf main.cf

Postfix的日志文件

  • /var/log/maillog
    • 记录了postfix服务的邮件传递等过程信息
  • 常用分析方法
    • 动态跟踪日志变化
 tail -f /var/log/maillog
  • 关键词搜索
 egrep '(reject|warning|error|fatal|panic):' /var/log/maillog

Postfix的控制启动

  • Postfix服务控制
    • 使用/usr/sbin/postfix程序
    • 常见控制参数:start、stop、reload、check
[root@mail postfix]# postfix  start
postfix/postfix-script: starting the Postfix mail system
[root@mail postfix]# netstat  -antp  |  grep  :25
tcp      0      0 0.0.0.0:25       0.0.0.0:*       LISTEN      7830/master

results matching ""

    No results matching ""