Postfix+Extmail安装文档

一、     简介
二、     安装
2.1、配置yum安装源
2.2、postfix安装

2.3、安装Courier-Authlib
2.4、安装maildrop

2.5、安装cyrus-sasl
2.6、安装Courier-imap
2.7、安装extmail
2.8、extman安装
2.9、apache配置
3.0、访问extmail/extman
三、 测试smtp/pop3认证

一、      简介

详细见官方文档
1  AM ----apache+mysql
2  Postfix mta邮件系统
3  Courier-authlib--个为courier-imapmaildropsasl2 提供用户信息的后台进程序
4  Courier-imap –提供pop3服务
5  extmail --一个著名的webmail程序
6  extman --与extmail集成的后台管理程序

二、  安装

2.1、配置yum安装源

Vi etc/yum.repos.d/Mail-Base.repo
# Mail-Base.repo
# Created by ExtMail Dev Team: http://www.extmail.org/
# $Id$
[EMOS-base]
name=EMOS-Base
baseurl=http://mirror.extmail.org/yum/emos/1.4/os/$basearch/
gpgcheck=0
priority=0
protect=0
[EMOS-update]
name=EMOS-Updates
baseurl=http://mirror.extmail.org/yum/emos/1.4/updates/$basearch/
gpgcheck=0
priority=0
protect=0
更新yum

Yum clean all
Yum list

2.2postfix安装

# export RPMS=/usr/src/redhat/RPMS
# export SOURCE=/usr/src/redhat/SOURCES
# export SPEC=/usr/src/redhat/SPECS
# wget http://ftp.wl0.org/official/2.5/SRPMS/postfix-2.5.4-2.src.rpm
# rpm -ivh postfix-2.5.4-2.src.rpm
下载

创建rpm
# cd $SPEC
修改下面选项

%define distribution rhel-5.0
%define with_mysql_redhat 1
%define with_sasl         2
%define with_vda         1

 

 

# rpmbuild -bb postfix.spec
# cd $RPMS/i386
# rpm -ivh postfix-2.5.4-2.rhel4.i386.rpm
切换mta

# alternatives --config mta (选择2postfix
# rpm -e sendmail
# cd /usr/sbin/
# mv sendmail sendmail.bak
# newaliases
# ln -s sendmail.postfix sendmail
配置postfix

# cd /etc/postfix/
# mv main.cf main.cf.bak
# vim main.cf
输入下面的内容:

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
unknown_local_recipient_reject_code = 550
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = /usr/share/doc/postfix-2.5.2-documentation/html
manpage_directory = /usr/share/man
sample_directory = /etc/postfix
readme_directory = /usr/share/doc/postfix-2.5.2-documentation/readme
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
myhostname = mail.test.com
mydomain = test.com
mydestination = $myhostname
smtpd_banner = test.com ESMTP Mail System
message_size_limit = 14680064
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_base = /home/data/domains
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_limit_maps.cf
virtual_transport = maildrop:
maildrop_destination_recipient_limit = 1
#sasl
smtpd_sasl_auth_enable = yes
smtpd_sasl2_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
 permit_mynetworks,
 permit_sasl_authenticated,
 reject_unauth_destination,
 reject_unauth_pipelining,
 reject_invalid_hostname

2.3、安装Courier-Authlib

安装以下软件包:

# yum install courier-authlib
# yum install courier-authlib-mysql
编辑/etc/authlib/authmysqlrc文件:
# vi /etc/authlib/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         uidnumber
MYSQL_GID_FIELD         gidnumber
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)'
修改authdaemonrc文件

# vi /etc/authlib/authdaemonrc
修改如下内容:
authmodulelist="authmysql"
authmodulelistorig="authmysql"
如一切正常,命令行将返回如下信息:
Starting Courier authentication services: authdaemond
修改authdaemon socket目录权限
如果该目录权限不正确修改,maildroppostfix等将无法正确获取用户的信息及密码认证:
# chmod 755 /var/spool/authdaemon/

2.4、安装maildrop

# yum install maildrop
maildrop RPM包安装时,会自动创建vuser用户及vgroup用户组,专门用于邮件的存储
配置master.cf 为了使Postfix支持Maildrop,必须修改/etc/postfix/master.cf文件,注释掉原来的maildrop的配置内容,并改为:

 

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