晓夏

新手菜鸟Linux学习之路

不怕从零开始,只怕从未启程

YUM安装Postfix+Extmail邮件服务器(一)

浏览量:941

 公司最近让搭建一个企业邮箱服务器,我首先想到的是Postfix,在这里由于是内网虚拟机+端口映射,所以是全新虚拟机,为了省事我这里使用的是YUM安装的。以后可能会更新源码包安装的。这里我只对写了操作,关于机制等方面不做说明,因为我也不懂。请自行了解。

 

关闭SELINUX

# vim /etc/sysconfig/selinux    编辑selinux配置文件
SELINUX=disabled        将SELINUX改成disabled
# setenforce 0        不重启服务器将selinux改为disabled

 

修改hostname

# echo 'mail.guoxin-linux.com' > /proc/sys/kernel/hostname
# hostname     查看hostname

mail.guoxin-linux.com

 

下载安装网络YUM源头

# rm -rf /etc/yum.repos.d/*    删除本地yum源
# cd /etc/yum.repos.d/        进入yum源配置目录
# wget     下载163网络YUM源头

 

安装编译环境

# yum install gcc gcc-c++ -y

 

安装依赖包软件

# yum install openssl openssl-devel cyrus-sasl libtool-ltdl libtool-ltdl-devel db4 db4-devel expect expect-devel pcre pcre-devel -y

 

安装LAMP架构

# yum install httpd httpd-devel mysql mysql-server mysql-devel php php-mysql -y

 

设置防火墙

# iptables -I INPUT -p tcp -m multiport --dport 21,80 -j ACCEPT
# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables:     [确定]

 

安装POSTFIX(YUM)

# rpm -qa |grep postfix    查看是否已安装postfix,一般为系统自带

postfix-2.6.6-2.2.el6_1.i686
# yum update postfix -y    更新下postfix

 

配置POSTFIX

# cd /etc/postfix/
# postconf -n > /etc/postfix/main2.cf
# mv main.cf main.cf.old
# mv main2.cf main.cf
# vim main.cf        编辑postfix配置文件
inet_interfaces = localhost    注释掉这行,否则只能本地连接
# 添加以下基本配置
# 主机设置 
mynetworks = 127.0.0.1 
myhostname = mail.guoxin-linux.com  
# 显示连接信息  
mail_name = Postfix - by guoxin-linux.com 
smtpd_banner = $myhostname ESMTP $mail_name
# 立即响应 
smtpd_error_sleep_time = 0s
# 邮件大小和邮箱大小限制10M、2G 
message_size_limit = 10485760 
mailbox_size_limit = 2097152000 
show_user_unknown_table_name = no 
# 队列超时限制 1天 
bounce_queue_lifetime = 1d 
maximal_queue_lifetime = 1d

 

启动POSTFIX

# service postfix start        启动postfix服务
# chkconfig postfix on        添加为开机启动项
# ps -aux | grep postfix        查看服务是否以及启动
root      8942  0.0  0.2  12612  2608 ?        Ss   19:55   0:00 /usr/libexec/postfix/master

postfix   8944  0.0  0.2  12688  2556 ?        S    19:55   0:00 pickup -l -t fifo -u

postfix   8945  0.0  0.2  12760  2600 ?        S    19:55   0:00 qmgr -l -t fifo -u

root      8995  0.0  0.0   5960   768 pts/2    S+   20:07   0:00 grep postfix
# netstat -tlnp| grep 25
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      8942/master         

tcp        0      0 ::1:25                      :::*                        LISTEN      8942/master

 

检查POSTFIX

# postfix check    如果没有任何返回则表示配置无误
# postconf -a        如果出现cyrus表示可以支持cyrus认证用户
cyrus
dovecot
# postconf -m | grep mysql  如果出现mysql则表示支持mysql存储账号
mysql

 

设置防火墙

# iptables -I INPUT -p tcp --dport 25 -j ACCEPT
# service iptables save

 

安装Courier-Authlib

下载如下几个包:

courier-authlib-0.66.1.tar.bz2
courier-unicode-1.1.tar.bz2
courier-imap-4.15.1.tar.bz2
maildrop-2.7.2.tar.bz2

 我已经上传到CSDN上了,免费下载:http://download.csdn.net/detail/study_xinxin/9449122

# groupadd vmail -g 1002
# useradd vmail -u 1002 -g 1002 -d /home/domains
# cd /usr/local/src/        存放源码包目录
# tar -jxf courier-authlib-0.66.1.tar.bz2
# cd courier-authlib-0.66.1
# ./configure --with-mysql-libs --with-mysql-includes --with-authmysql --with-authmysql=yes --with-mailuser=vmail --with-mailgroup=vmail
# echo $?
0
# make && make install        如果报错请检查上文的依赖关系
# make install-configure

注意:如果是源码包安装的mysql也可指定绝对路径

--with-mysql-includes=/usr/local/mysql/include/mysql/

--with-mysql-libs=/usr/local/mysql/lib/mysql\


配置Courier-Authlib

# cd /usr/local/etc/authlib/
vim authmysqlrc
找到以下内容并对其进行修改
MYSQL_SERVER            localhost
MYSQL_USERNAME          extmail
MYSQL_PASSWORD          extmail
MYSQL_SOCKET            /var/lib/mysql/mysql.sock
MYSQL_PORT              3306
MYSQL_OPT               0
MYSQL_DATABASE          extmail
MYSQL_USER_TABLE        mailbox
MYSQL_CRYPT_PWFIELD     password
MYSQL_UID_FIELD         1002
MYSQL_GID_FIELD         1002
MYSQL_LOGIN_FIELD       username
MYSQL_HOME_FIELD        homedir
MYSQL_NAME_FIELD        name
MYSQL_MAILDIR_FIELD     maildir
MYSQL_QUOTA_FIELD       quota
MYSQL_SELECT_CLAUSE     SELECT username,password,"",uidnumber,gidnumber,\
                        CONCAT('/home/domains/',homedir),               \
                        CONCAT('/home/domains/',maildir),               \
                        quota,                                          \
                        name                                            \
                        FROM mailbox                                    \
                        WHERE username = '$(local_part)@$(domain)'

# vim authdaemonrc
修改以下内容
authmodulelist="authmysql"
authmodulelistorig="authmysql"
# ln -s /usr/local/etc/authlib /etc/authlib


启动Courier-Authlib

# /usr/local/sbin/authdaemond start
# ps -aux | grep authdaemond    查看服务是否已启动
root     11641  0.0  0.0   1988   480 ?        S    22:28   0:00 /usr/local/sbin/courierlogger -pid=/usr/local/var/spool/authdaemon/pid -start /usr/local/libexec/courier-authlib/authdaemond

root     11642  0.0  0.1   8184  1688 ?        S    22:28   0:00 /usr/local/libexec/courier-authlib/authdaemond

root     11643  0.0  0.0   8184   576 ?        S    22:28   0:00 /usr/local/libexec/courier-authlib/authdaemond

root     11644  0.0  0.0   8184   576 ?        S    22:28   0:00 /usr/local/libexec/courier-authlib/authdaemond

root     11645  0.0  0.0   8184   576 ?        S    22:28   0:00 /usr/local/libexec/courier-authlib/authdaemond

root     11646  0.0  0.0   8184   576 ?        S    22:28   0:00 /usr/local/libexec/courier-authlib/authdaemond

root     11647  0.0  0.0   8184   576 ?        S    22:28   0:00 /usr/local/libexec/courier-authlib/authdaemond

root     11650  0.0  0.0   5960   764 pts/2    S+   22:28   0:00 grep authdaemond

 

安装Maildrop

先安装Courier-Unicode包,如果不安的话编译时后报错

configure: error: The Courier Unicode Library appears not to be installed. 
You may need to install a separate development subpackage, in addition to the main package


# cd /usr/local/src/
# tar jxf courier-unicode-1.1.tar.bz2
# cd courier-unicode-1.1
# ./configure
# echo $?
0                0代表正常
# make && make install

 

# cd ..
# tar -jxf maildrop-2.7.2.tar.bz2
# cd maildrop-2.7.2
# ./configure --enable-maildirquota --enable-maildrop-uid=1002 --enable-maildrop-gid=1002 --with-trashquota
# echo $?
0
# make && make install

 

配置Maildrop

# vim /etc/postfix/master.cf
添加如下内容,flags前必须有两个空格
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -w 90 -d ${user}@${nexthop} ${recipient} ${user} ${extension} {nexthop}

# vim /etc/postfix/main.cf
#控制maildrop一次只处理一封邮件 
maildrop_destination_recipient_limit = 1

说明:用户vmail和组vmail将惯穿整个邮件系统,一定要记 住它们的名称vmail和ID号1002,如果不和本文设置的一样,请在编译和配置时修改成你自 己的。

 

测试Maildrop

# maildrop -v

报错:maildrop: error while loading shared libraries: libunicode.so.1: cannot open shared object file: No such file or directory
# echo '/usr/local/lib' >> /etc/ld.so.conf        这里由于我是32位系统所有是lib目录,64位系统是lib64
# ldconfig
# maildrop -v
maildrop 2.7.2 Copyright 1998-2005 Double Precision, Inc.

Courier Authentication Library extension enabled.

Maildir quota extension are now always enabled.

This program is distributed under the terms of the GNU General Public

License. See COPYING for additional information.


结论:邮件系统的基本架构搭建好了,后台有了MTA和MDA,下一节将搭建前台Webmail。

本文出自 “月晴星飞” 博客,请务必保留此出处http://ywzhou.blog.51cto.com/2785388/1589108

分享:

支付宝

微信