CentOS 5.5下邮件服务器Postfix安装

操作系统(OS) CentOS 5.5
邮件传输代理(MTA) Postfix  使用最新版本2.6.x
数据库/目录服务 MySQL 5.0  可选openLDAP或NetScape LDAP,本文以MySQL为蓝本
邮件投递代理(MDA) maildrop 2.0.x 支持过滤和强大功能
Web帐户管理后台 ExtMan 0.2.5 支持无限域名、无限用户
POP3 服务器 Courier-IMAP 对于大部分企业而言完全足够
WebMail 系统 ExtMail 1.1 支持多语言、全部模板化,功能基本齐全
SMTP认证库 Cyrus SASL  标准的SASL实现库,可以支持Courier authlib
其他数据认证库 Courier Authlib 0.60 authlib是maildrop, courier-imap等服务的关键部件
日志分析及显示 mailgraph_ext 在ExtMan中已经包含了
Web 服务器 Apache 2.x OS 自带

1. 安装postfix
service sendmail stop
yum install httpd-devel bind bind-chroot caching-nameserver
卸载不支持mysql认证的postfix
rpm -e postfix
安装postfix
yum install postfix-2.6.2-5hzq.i386.rpm
查看是否支持mysql认证
postconf -m
修改postfix配置文件
vim /etc/postfix/main.cf
myhostname = mail.up.com
mydomain = up.com
inet_interfaces = all
mydestination = $myhostname, $mydomain, localhost
启动postfix
service postfix restart

2. 安装courier-authlib
使用authlib登陆验证.这样可以不用管后台用户数据是用什么方式存储的.比方说MySQL/LDAP
yum install courier-authlib
yum install courier-authlib-mysql

修改authdaemon socket目录权限
如果该目录权限不正确修改,maildrop及postfix等将无法正确获取用户的信息及密码认证:
chmod 755 /var/spool/authdaemon

cd /etc/authlib/
vim authdaemonrc
authmodulelist="authmysql"
authmodulelistorig="authmysql"

vim /etc/authlib/authmysqlrc
MYSQL_SERVER        localhost
MYSQL_USERNAME        extmail
MYSQL_PASSWORD        extmail

MYSQL_SOCKET        /var/lib/mysql/mysql.sock
MYSQL_PORT        3306

MYSQL_DATABASE        extmail
MYSQL_USER_TABLE    mailbox
MYSQL_CRYPT_PWFIELD    password
MYSQL_UID_FIELD        uidnumber
MYSQL_GID_FIELD        gidnumber
MYSQL_LOGIN_FIELD    username
MYSQL_HOME_FIELD    concat('/var/mailbox/',homedir)
MYSQL_MAILDIR_FIELD    concat('/var/mailbox/',maildir)

启动courier-authlib    
service courier-authlib start
创建邮箱目录
mkdir /var/mailbox

3. 安装courier-imap
yum install courier-imap
ExtMail目前还没有正式支持IMAP目录,因此需要屏蔽IMAP,只提供pop3服务。而就目前的使用情况来看,IMAP使用的非常少,绝大部分OutLook/Foxmail用户都习惯使用POP3而非IMAP。
vi /usr/lib/courier-imap/etc/imapd
IMAPDSTART=NO
vi /usr/lib/courier-imap/etc/imapd-ssl
IMAPDSSLSTART=NO
重新启动courier-imap
service courier-imap start

4. 安装maildrop
maildrop是一个使用C++编写的用来代替本地MDA的带有过滤功能邮件投递代理,是courier邮件系统组件之一,我们在此将使用maildrop来代替postfix自带的MDA。
yum install maildrop

为了使Postfix支持Maildrop,必须修改/etc/postfix/master.cf文件:
maildrop   unix        -       n        n        -        -        pipe
  flags=DRhu user=vuser argv=maildrop -w 90 -d ${user}@${nexthop} ${recipient} ${user} ${extension} {nexthop}

配置main.cf 由于maildrop不支持一次接收多个收件人,因此必须在main.cf里增加如下参数:
maildrop_destination_recipient_limit = 1
maildrop -v   测试
  检查安装结果,请确保有"Courier Authentication Library extension enabled."一句出现:
maildrop RPM包安装时,会自动创建vuser用户及vgroup用户组,专门用于邮件的存储,vuser:vgroup的uid/gid都是1000
修改邮箱目录属性:
chown vuser.vgroup /var/mailbox -R

5. 安装cyrus-sasl
yum install cyrus-sasl
开启postfix的smtp认证
vim /etc/postfix/main.cf
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions=permit_sasl_authenticated,reject_unauth_destination

让postfix支持虚拟用户
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_transport = maildrop
#local_recipient_maps = (注释去掉)
编辑smtpd.conf文件,让虚拟用户到mysql数据库认证
vi /usr/lib/sasl2/smtpd.conf
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/var/spool/authdaemon/socket

chmod -R 777 /var/spool/authdaemon/
service saslauthd start

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/0701b129ce47ffa05152b072c37a541f.html