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 邮件用户。
- postfix 源码编译安装及报错处理(基于系统用户)
- ubuntu14.04中qemu编译安装及报错处理
- Mysql 5.6 源码安装及报错处理
- Centos5编译安装apache报错处理
- 编译时 报错处理(三)
- Moodle 安装报错处理(Linux)
- android 编译报错处理
- Bitvise Tunnelier 安装教程及报错处理
- hadoop上hive安装配置及报错处理
- ubuntu16.04 CRF++安装及报错处理
- 三、Jenkins系列_插件安装及报错处理
- docker安装报错处理
- Magento安装报错处理
- 编译时 报错处理(一)结构体问题
- 编译时 报错处理(二)id类型
- 编译报错处理:error C4996
- Android安装eclipse报错处理(备忘)
- 报错处理(三)
- hdu3240 Counting Binary Trees 卡特兰数 乘法逆元
- premake 使用clang替换gcc
- 正则表达式语法详解
- 父亲是一本书
- 当ORACLE突然断电,重新启动过程发生了哪些事?
- postfix 源码编译安装及报错处理(基于系统用户)
- boost库 bind/function的使用 [大三四八九月实习]
- poj 2533做题笔记
- 海外省电应用市场:本土化为先锋,高技术为基础
- 常见的笔试面试题(概念性的:死锁,进程通信方式,指向字符变量的指针,文件索引结构,可被重载的运算符)
- C++中设计一个类,使其不能被继承
- 顶级图像去雾源码整理及仿真结果
- highcharts图表内的tooltip提示框在IE浏览器下出现花屏的问题分析以及解决办法
- http://www.verysource.com/