当前位置: 主页 > 服务器技术 > Mail服务器 > CENTOS5下配置mail服务器

CENTOS5下配置mail服务器

时间:2009-10-22来源:互联网 点击:

说明:apache,php,mysql,为centos5自带的,就是说我装系统的时候,就选择上了:
cyrus-sasl,postfix,courier-authlib,maildrop ,courier-imap 是通过源码编译的,
写这个的目的就是,复制内容,照着一步步的做下去就能配置出来一个成功的可视化管理的mail服务器

如果是rpm方式按装的msqyl,include及lib目录的位置
/usr/include/mysql /usr/lib/mysql
如果是编译的,位于你指定的目录下,如果编译mysql指定目录为/usr/local/mysql则位于
/usr/local/mysql/include/mysql /usr/local/mysql/lib/mysql

开始:::
如果你的apache,php,mysqsl是centos5自带的,就是说不是你自己编译的,以下的代码可以复制粘

贴直接用
=cyrus-sasl=按装配置cyrus-sasl
=cyrus-sasl=下载地址:ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/
=cryus-sasl=文件名:cyrus-sasl-2.1.22.tar.gz
#rpm -qa|grep cyrus-sasl把查找出来的包都删除了
#rpm -e --nodeps 包名
#rm -rf /usr/lib/sasl
#rm -rf /usr/lib/sasl2
=cyrus-sasl=进入解压目录编译:
#./configure \
--enable-plain \
--enable-cram \
--enable-digest \
--enable-login \
--enable-sql \
--disable-anon \
--disable-ntlm \
--disable-gssapi \
--disable-krb4 \
--disable-otp \
--disable-srp \
--disable-srp-setpass \
-with-authdaemond=/usr/local/courier-authlib/var/spool/authdaemon/socket \
--with-mysql

#make
#make install
#ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
#vi /etc/ld.so.conf
/usr/local/lib //增加该行
# ldconfig
# vi /usr/local/lib/sasl2/smtpd.conf
加入以下四行
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket


==postfix==按装配置postfix
==postfix==下载地址:http://www.postfix.org/download.html
==postfix==文件名:postfix-2.4.6.tar.gz
==postfix==进入解压目录编译:
# yum install db*-devel*
# make tidy
# groupadd postfix -g 54321 //如果原来系统中有该用户则不需要再建
# groupadd postdrop
# useradd -s /bin/false -u 54321 -g postfix -G postdrop postfix
==postfix==备注,我的mysql是rpm包装的,如果是你自己源码编译的,下边mysql路径会有变化
#make makefiles ‘CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_CYRUS_SASL -DUSE_SASL_AUTH -I/usr/local/include/sasl‘ ‘AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lm -lz -L/usr/local/lib -lsasl2‘
#make
#make install
#mv /etc/aliases /etc/aliases.old
#ln -s /etc/postfix/aliases /etc/aliases
#echo ‘root: admin@example.com‘>>/etc/postfix/aliases
#/usr/bin/newaliases

#postconf -n > /etc/postfix/main2.cf
#mv /etc/postfix/main.cf /etc/postfix/main.cf.old
#mv /etc/postfix/main2.cf /etc/postfix/main.cf
# vi /etc/postfix/main.cf
==postfix==main.cf加入以下内容
# hostname
mynetworks = 127.0.0.1
myhostname = mail.extmail.org
mydomain = extmai.com
myorigin = $mydomain
mydestination = $mynetworks $myhostname

# banner
mail_name = Postfix - by extmail.org
smtpd_banner = $myhostname ESMTP $mail_name

# response immediately
smtpd_error_sleep_time = 0s
unknown_local_recipient_reject_code = 450

# extmail config here
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:
==postfix==main.cf内容结束
==postfix==以下几个文件可以通过cp /var/www/html/extsuite/extman/docs/mysql_*

/etc/postfix/得到
==postfix==编辑mysql_virtual_alias_maps.cf
vi /etc/postfix/mysql_virtual_alias_maps.cf
内容如下:
user = extmail
password = extmail
hosts = localhost
dbname = extmail
table = alias
select_field = goto
where_field = address

==postfix==编辑mysql_virtual_domains_maps.cf
vi /etc/postfix/mysql_virtual_domains_maps.cf
内容如下:
user = extmail
password = extmail
hosts = localhost
dbname = extmail
table = domain
select_field = description
where_field = domain
#additional_conditions = and backupmx =‘0‘ and active =‘1‘

==postfix==编辑mysql_virtual_mailbox_maps.cf
vi /etc/postfix/mysql_virtual_mailbox_maps.cf
内容如下:
user = extmail
password = extmail
hosts = localhost
dbname = extmail
table = mailbox
select_field = maildir
where_field = username
#additional_conditions = and active = ‘1‘


==postfix==SMTP认证需要透过Cyrus-SASL,连接到authdaemon获取认证信息,编

辑/etc/postfix/main.cf,增加如下内容:

# smtpd related config
smtpd_recipient_restrictions =
    permit_mynetworks,
   permit_sasl_authenticated,
   reject_non_fqdn_hostname,
   reject_non_fqdn_sender,
   reject_non_fqdn_recipient,
   reject_unauth_destination,
   reject_unauth_pipelining,
   reject_invalid_hostname,

# SMTP AUTH config here
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
==courier-authlib==按装配置配置courier-authlib
==courier-authlib==下载地址:http://sourceforge.net/project/showfiles.php?group_id=5404
文件名:courier-authlib-0.60.2.tar.bz2
# yum install gdbm-*
==courier-authlib==进入解压目录编译
./configure \
--prefix=/usr/local/courier-authlib \
--without-stdheaderdir \
--without-authuserdb \
--without-authpam \
--without-authldap \
--without-authpwd \
--without-authshadow \
--without-authvchkpw \
--without-authpgsql \
--without-authcustom \
--with-authmysql \
--with-redhat

#make
#make install
#make install-configure

编辑vi /etc/ld.so.conf
加入/usr/local/courier-authlib/lib/courier-authlib
# ldconfig
备注:如果没有运行ldconfig,按装完maildrop,运行maildrop -v时会出现错误(maildrop:

error while loading shared libraries: libcourierauth.so.0)

# vi /etc/rc.d/rc.local
/usr/local/courier-authlib/sbin/authdaemond start //增加该行
修改目录权限,如果该目录权限不正确修改,maildrop及postfix等将无法正确获取用户的信息及

密码认证:
#chmod 755 /usr/local/courier-authlib/var/spool/authdaemon

然后编辑/usr/local/courier-authlib/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)‘

启动服务
# /usr/local/courier-authlib/sbin/authdaemond start


==maildrop==按装配置maildrop
==maildrop==下载地址:http://sourceforge.net/project/showfiles.php?group_id=5404
==maildrop==文件名:maildrop-2.0.4.tar.bz2
#yum install pcre-*
#ln -s /usr/local/courier-authlib/bin/courierauthconfig /usr/bin/courierauthconfig
==maildrop==这样编译出来的maildrop才会ourier Authentication Library extension enabled.
# groupadd -g 1000 vgroup
# useradd -g 1000 -u 1000 -s /bin/false vuser
==maildrop==编译:
./configure   \
--enable-sendmail=/usr/sbin/sendmail \
--enable-trusted-users=‘root vuser‘ \
--enable-syslog=1 \
--enable-maildirquota \
--enable-maildrop-uid=1000 \
--enable-maildrop-gid=1000 \
--with-trashquota \
--with-dirsync

# make
# make install
# maildrop -v   //检查信息,如果有courier-authlib则表示安装成功


==maildrop==配置main.cf和master.cf使postfix调用maildrop
由于maildrop不支持一次接收多个收件人,因此必须在main.cf里增加如下参数:
vi /etc/postfix/main.cf
加入
maildrop_destination_recipient_limit = 1
为了使Postfix支持Maildrop,必须修改/etc/postfix/master.cf文件,注释掉原来的maildrop的

配置内容,并改为:
vi /etc/postfix/master.cf

maildrop   unix        -       n        n        -        -        pipe
    #flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
flags=DRhu user=vuser argv=/usr/local/bin/maildrop -w 90 -d ${user}@${nexthop} ${recipient} ${user} ${extension} {nexthop}

此处要注意argv=后边的maildrop要加上路径,否则会出现
temporary failure. Command output: pipe: fatal: pipe_command: execvp maildrop: No such

file or directory
注意maildrop unix这行前边不能有空格,要不会出现以下错误提示
warning: connect to transport maildrop: No such file or directory
Oct 31 23:21:24 localhost postfix/error[2235]: BE0AE27DAF6: to=<jjq002@abc.com>,

relay=none, delay=1443, delays=1443/0.24/0/0.02, dsn=4.3.0, status=deferred (mail

transport unavailable)
注意flags=Drhu这一行前边有两个空格,要不会出现以下错(fatal: /etc/postfix/master.cf: line

100: bad transport type: user=vuser):

虚拟主机设置
在http.conf中,注解掉
#AddDefaultCharset UTF-8
在最后一行加上:
NameVirtualHost *:80
Include conf/vhost_*.conf

编辑/etc/httpd/conf/vhost_extmail.conf,里面定义虚拟主机的相关内容包括主目录,以及ExtMail和ExtMan的
相关配置,Suexec的设置等。

# VirtualHost for ExtMail Solution
<VirtualHost *:80>
ServerName www.abc.com
DocumentRoot /var/www/html/extsuite/extmail/html/

ScriptAlias /extmail/cgi/ /var/www/html/extsuite/extmail/cgi/
Alias /extmail/ /var/www/html/extsuite/extmail/html/

ScriptAlias /extman/cgi/ /var/www/html/extsuite/extman/cgi/
Alias /extman/ /var/www/html/extsuite/extman/html/

# Suexec config
SuexecUserGroup vuser vgroup
</VirtualHost>
保存,重启apache
出现Warning: DocumentRoot [/var/www/html/extsuite/extmail/html/] does not exist
不必理会,下边马上会配置
========================

配置extmail,extman
下载地址:http://www.extmail.org/cgi-bin/download.cgi
文件名:extmail-1.0.2.tar.gz   extman-0.2.2.tar.gz 下载并解压
配置过程:
#mkdir -p /var/www/html/extsuite
=====针对ExtMailcyrus-sasl-2.1.22.tar.gz
#cp -r extmail-1.0.2 /var/www/html/extsuite/extmail
#cd /var/www/html/extsuite/extmail/
#cp webmail.cf.default webmail.cf
编辑webmail.cf
把/var/www/extsuite/替换为/var/www/html/extsuite/
其它变动如下:
SYS_USER_LANG = zh_CN
SYS_USER_CHARSET = gb2312

SYS_MFILTER_ON = 1
SYS_NETDISK_ON = 1

SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
SYS_MYSQL_DB = extmail

SYS_G_ABOOK_TYPE = file
SYS_G_ABOOK_FILE_CHARSET = gb2312

更新cgi目录权限
由于SuEXEC的需要,必须将extmail的cgi目录修改成vuser:vgroup权限:
chown -R vuser:vgroup /var/www/html/extsuite/extmail/cgi/

====针对ExtMab
#cp -r extman-0.2.2 /var/www/html/extsuite/extman
#cd /var/www/html/extsuite/extman
编辑webman.cf
把/var/www/extsuite/替换为/var/www/html/extsuite/
其它配置
SYS_CHARSET = gb2312
SYS_LANG = zh_CN

更新cgi目录权限
由于SuEXEC的需要,必须将extman的cgi目录修改成vuser:vgroup权限:
chown -R vuser:vgroup /var/www/html/extsuite/extman/cgi/

====数据库初始化,need to edit extmail.sql and init.sql to suit you website,and the

init user ,passwd are in this tow file
#mysql -u root -p < /var/www/html/extsuite/extman/docs/extmail.sql //创建数据库
#Enter password:
# mysql -u root -p < /var/www/html/extsuite/extman/docs/init.sql //插入一些默认值
#Enter password:

=======链接基本库到Extmail
由于ExtMan的体系与ExtMail比较类似,因此ExtMan需要使用ExtMail中几个基础perl 模块,在
extman的源码包里,包含了一个叫buildpkg.sh(可能以前版 本为buildlink.sh) 的小脚本,该脚
本完成了这些链接的工作,使用方法:
#cd /var/www/html/extsuite/extman/libs/Ext
#./buildpkg.sh build /var/www/html/extsuite/extmail/libs/Ext
#mkdir /tmp/extman
#chown -R vuser:vgroup /tmp/extman

======数据库中默认插入的测试邮箱时postmaster@extmail.org为其建立 maildir
#cd /var/www/html/extsuite/extman/tools/
#./maildirmake.pl /home/domains/extmail.org/postmaster/Maildir
#chown -R vuser:vgroup /home/domains


=======[cloudrainwind.com是我自己建立的URL]通过http://www.cloudrainwind.com/exmail/访问邮件登陆页面。会出现
Unix::Syslog not found, please install it first!
需要按装:perl-Unix-Syslog
下载地址:http://rpm.pbone.net/index.php3/stat/4/idpl/4851834/com/perl-Unix-Syslog-0.100-9.el5.i386.rpm.html
文件名: perl-Unix-Syslog-0.100-9.el5.i386.rpm

=====通过http://www.cloudrainwind.com/extman访问后台管理面,会看不到验证码,需要按装

perl-GD
下载地址:http://dries.ulyssis.org/rpm/packages/perl-GD/info.html
            或:http://apt.sw.be/packages/perl-GD/
文件名:perl-GD-2.30-2.2.el5.rf.i386.rpm

整体测试:
# echo "test"|maildrop -V 10 -d postmaster@extmail.org
//出现maildrop: Delivery complete.说明已经正常投递

配置courier-imap
下载地址:http://sourceforge.net/project/showfiles.php?group_id=5404
文件名: courier-imap-4.2.1.tar.bz2
编译:
# ./configure --prefix=/usr/local/courier-imap \
--with-redhat \
--enable-unicode \
--disable-root-check \
--with-trashquota \
--without-ipv6 COURIERAUTHCONFIG=‘/usr/local/courier-authlib/bin/courierauthconfig‘
# make
# make install
然后
#cp /usr/local/courier-imap/etc/imapd.dist /usr/local/courier-imap/etc/imapd
#cp /usr/local/courier-imap/etc/imapd-ssl.dist /usr/local/courier-imap/etc/imapd-ssl
#cp /usr/local/courier-imap/etc/pop3d.dist /usr/local/courier-imap/etc/pop3d
#cp /usr/local/courier-imap/etc/pop3d-ssl.dist /usr/local/courier-imap/etc/pop3d-ssl
配置Courier-IMAP,为用户提供pop3服务:
vi /usr/local/courier-imap/etc/pop3d
POP3DSTART=yes
注:如果你想为用户提供IMAP服务,可以在"/usr/local/courier-imap/etc/imapd"文件中设

置"IMAPDSTART=YES"。
cp courier-imap.sysvinit /etc/rc.d/init.d/imapd
chmod 755 /etc/rc.d/init.d/imapd
chkconfig --add imapd

==mailgraph_ext==配置,需要的包及下载地址:
下载地址:http://rpm.pbone.net/index.php3/stat/4/idpl/4852050/com/rrdtool-1.2.23-3.el5.i386.rpm.html
文件名:rrdtool-1.2.23-3.el5.i386.rpm
下载地址:http://rpm.pbone.net/index.php3/stat/4/idpl/4509699/com/perl-rrdtool-1.2.23-1.el5.rf.i386.rpm.html
文件名:perl-rrdtool-1.2.23-1.el5.rf.i386.rpm
rpm -ivh按装上以上两个rpm包
按装:File::Tail及Time::HiRes
# yum install perl-CPAN
#perl -MCPAN -e shell
#cpan>install File::Tail
#cpan>install Time::HiRes
#cpan>quit
必要的包装好后,配置mailgraph_ext
#cp -r /var/www/html/extsuite/extman/addon/mailgraph_ext/ /usr/local/mailgraph_ext/
# /usr/local/mailgraph_ext/mailgraph-init start
# /usr/local/mailgraph_ext/qmonitor-init start
为了一开机就能自动执行上述进程,将上述命令加到rc.local 里面:
echo "/usr/local/mailgraph_ext/mailgraph-init start" >> /etc/rc.d/rc.local
echo "/usr/local/mailgraph_ext/qmonitor-init start" >> /etc/rc.d/rc.local


到这里邮件系统就可以运行了,下边的部分可以选择配置

 

站长资讯网
.
分页: [1] [2]
TAG: 服务器 CENTOS MAIL
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言