postfix 源码编译安装及报错处理(基于系统用户)

来源:互联网 发布:淘宝客微信小程序效果 编辑:程序博客网 时间:2024/06/06 19:15

系统环境

red hat 6.4 x86 minimal  Lamp 标准平台

yum -y install gcc gcc-c++ make cmake ncurses ncurses-devel libtool bzip2

一、  搭建DNS服务器,用来支持邮件域名解析

1、安装:yum -y install bind*  (bind-9.8.2-0.17.rc1.el6_4.4.x86_64)
2、配置DNS服务器,编辑主配置文件 vim /etc/named.conf 
3、复制区域配置文件模板 生成自己的配置文件

cp -p /var/named/named.localhost /var/named/xiaoguai.com.zone

编辑区域配置文件 vim /var/named/xiaoguai.com.zone

 

这里说明一下,高版本的DNS没玩过,这次做试验各种崩溃 启动各种报错

一般来说,检查named.conf文件的zone配置主要是区配文件的A 或AAAA 记录必须存在至少一项默认的 也就是指向127.0.0.1 目前不知道为什么…  (这个问题已经找到解决方法,之所以删掉后不能启动,是因为你的一级域名没有了解析地址!)

复制默认配置文件生成区域反向解析文件(其实这个PTR记录可以写到上一个文件中)

cp -p /var/named/named.localhost /var/named/192.168.0.arpa

编辑区域反向配置文件 vim /var/named/192.168.0.arpa

  同上原因 已解决!

4、更改主机名  vim /etc/sysconfig/network && 更改主机DNS1为本机地址

 

DNS 配置完成,启动后使用nslookup测试A 、MX 、PTR 记录 并将服务加入开机启动

service named start chkconfig --add named chkconfig --level 35 named on

报错管理:

启动DNS 提示如下

 

解决方法:rndc-confgen -r /dev/urandom -a

二、  编译安装postfix  (postfix-2.10.1.tar.gz)

1、查找系统自带的sendmail postfix 并删除  加 --nodeps
2、删除原有的postfix postdrop 组 跟 postfix 用户
3、创建新的postdrop postfix   用户 组 
4、下载并解压postfix源码包
5、预先安装参数支持包

yum -y install cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-lib cyrus-sasl

6、进入解压目录编译 安装  (make 参数一定字跟图对应看严格区分大小写)

make -f Makefile.init makefiles \

'CCARGS= -DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl' \

'AUXLIBS= -L/usr/local/mysql/lib -lmysqlclient -lz -lm -L/usr/lib64/sasl2 -lsasl2'

可能会报这个错 只要安装db*-devel 就可以通过  yum -y install db*-devel

make

这一步会经常出错!一定注意提示缺少文件的路径 如:mysql.h对应第一个路径 find 查找后修改路径重新配置

make install

这个安装直接全部默认也可以 不过,我改了第二、三个路径为下图所示:

其他一路回车

make install也会各种报错 一定要注意查看报错信息

有提示 找不到 libmysqlclients.so.18  libpcre.so.1 文件

解决方法:( ln -s /path /usr/lib64  32位为  /usr/lib )

find / -name libmysqlclients.so.18   这也一样 libpcre.so.1  

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/

7、调整postfix 配置文件

vim /etc/postfix/main.cf

8、启动postfix 并加入开机启动

postfix start  chkconfig --add postfix  chkconfig --level 35 postfix on

启动报错,查看后发现这些文件默认属主 属组为 89 89

解决方法:前四个改为 postfix:postfix  最后一个改为 :postdrop

9、SMTP 邮件发送测试

邮件本地账户管理  创建邮件用户组、用户名

groupadd mailusers

useradd -g mailusers -s /sbin/mologin mike

useradd -g mailusers -s /sbin/nologin shrek

passwd mike (123456)  passwd shrek (123123)

因为我系统为minimal 安装,没有装telnet 所以yum 一下 yum -y install telnet

测试发送邮件

查看用户邮件

报错管理:

不能telnet localhost 25

 因为这里没有加127.0.0.1

用户收不到邮件

这里有三行选中间这行,第一行收不到  还有home_mailbox = Mailbox/ 这项有没有

10、SMTP 发信认证

cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-lib cyrus-sasl

确认这四个包存在 多余的要删掉 不然日志有报错如下:

设置cyrus-sasl 函数库 vim /usr/lib64/sasl2/smtpd.conf (文件自行创建)

启动服务并加入开机启动

service saslauthd start  chkconfig --add saslauthd  chkconfig saslauthd on

编辑postfix 主配文件在最后加入smtp认证 vim /etc/postfix/main.cf

vim /etc/sysconfig/saslauthd

  用密码文件作为认证文件

测试认证:testsaslauthd -u 用户 -p '密码'

重启服务并做smtp发信认证

service saslauthd restart   postfix stop  postfix start

smtp发信认证测试

三、  安装邮局 dovecot(提供 pop3/imap4协议 用来收取邮件dovecot-2.1.11.tar.gz)

1、安装支持软件包:yum -y install pam-devel
2、创建相关用户 用来正常启动dovecot

useradd -M -s /sbin/nologin dovecot

useradd -M -s /sbin/nologin dovenull

3、解压完后cd 进安装目录 进行编译安装

./configure --sysconfdir=/etc --with-mysql --with-pam

make && make install

cd doc/            //切进解压目录下的doc下 创建相关目录并执行mkcert.sh文件

mkdir -p /etc/ssl/certs

mkdir -p /etc/ssl/private

sh mkcert.sh

4、复制主配文件 及 启动所需文件 并做调整

cp /usr/local/share/doc/dovecot/example-config/dovecot.conf /etc/dovecot/

cp -r /usr/local/share/doc/dovecot/example-config/conf.d/ /etc/dovecot/

vim /etc/dovecot/dovecot.conf

protocols = imap pop3 lmtp    //注释去掉 用来支持邮局协议

vim /etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = no   //注释去掉yes改为no 允许明文密码验证

vim /dovecot/conf.d/10-ssl.conf

ssl = no                      //注释去掉  yes 改为no 禁用ssl

vim /etc/dovecot/conf.d/10-mail.conf

    //注释去掉 邮件存储格式及位置

5、创建pam 认证文件

vim /etc/pam.d/dovecot

6、启动dovecot    dovecot

报错管理:

启动报错如下  解决方法  useradd -M -s /sbin/nologin dovenull

dovecot 启动时 显示 ssl_cert_file:Can't use /etc/ssl/certs/dovecot.pem

解决放法:

mkdir -p /etc/ssl/certs   mkdir -p /etc/ssl/private

cd /dovecot源码目录/doc/ 执行 sh mkcert.sh

telnet localhost 110 端口时不出现+ok dovecot ready 停在Escape character is ..

解决方法:

yum -y install pam-devel  编译dovecot时加入参数  --with-pam

7、邮件接收测试

四、  squirrelmail 安装 (squirrelmail-webmail-1.4.22.tar.gz)


1、解压安装包到 /usr/local/apache/htdocs 目录下

mv squirrelmail webmail     //改名为webmail 为了好管理

cd webmail

mkdir -p attach             //在webmail下创建文件夹 如没有data也要创建

chown -R daemon:daemon attach/ data/      //更改文件夹属主、属组

chmod 730 attach/                         //更改权限

cp config/config_default.php config/config.php   //产生配置文件

2、编辑配置文件 vim config/config.php

$domain = 'xiaoguai.com';            //对应你的域名

$smtpServerAddress = 'localhost';    //发信服务器地址

$smtpPort = 25;                      //发信服务器端口

$imap_server_type = 'dovecot';       //收信服务器软件

$imapPort = 143;                     //收信服务器端口

$data_dir = '/usr/local/apache/htdocs/webmail/data/';

$attachment_dir = '/usr/local/apache/htdocs/webmail/attach/';

ß--汉化时要用到以下两项  很遗憾,汉化我没有完成。

$squirrelmail_default_language = 'en_US';   //文档说改为 zh_CN

$default_charset = 'iso-8859-1';            //zh_CN.UTF-8

3、设置apache 网站根目录或者建立虚拟目录用来访问webmail 成功为下图:

OK webmail 完成!

五、  postfix 更多设置

1、限定邮件大小为50M,邮箱大小为500M

vim /etc/postfix/main.cf

mailbox_size_limit = 524288000      //邮箱大小

message_size_limit = 50889600       //邮件大小  默认邮件大小为10M

说明:

mailbox_size_limit

针对Mailbox邮件存储方式的情况,默认限制为50M 只对系统用户生效

virtual_mailbox_limit

针对虚拟用户,默认限制50M 安装VDA补丁后,可以对使用Mailbox 或Maildir存储方式的用户生效

qutoa 磁盘配额,针对Linux系统账户,对Mailbox 和Maildir存储方式的用户都生效

2、添加邮件用户 并设置密码

groupadd mailusers

useradd -g mailusers -s /sbin/nologin terry     passwd terry (123123)

……

3、添加邮件组,实现邮件群发

vim /etc/postfix/main.cf

alias_maps = bash:/etc/aliases

vim /etc/aliases

market : terry, shrek

newaliases                   //保存退出后,执行命令

这时候给 market@xiaoguai.com 发邮件就发给了terry 和 shrek 邮件用户。