注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

曾国藩的博客

 
 
 

日志

 
 

postfix+dovecot+mysql+extmail+courier-authlib  

2013-03-14 17:58:23|  分类: 邮件服务器 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://zhumeng8337797.blog.163.com/blog/static/10076891420107308732574/
要写这个,确实有点复杂,涉及到很多东西,这里小辉力求达到授之以鱼,又授之以渔的目的。结合实际操作讲解系统原理,这样大家才知道自己到底在操作什么。当然,水平有限,不可能面面俱到,希望大家多提意见。好了,废话不多说了,下面开始讲解。
1           系统环境:  RHEL 5.4或者CentOS 5.4
2           主要软件组:postfix+dovecot+mysql+extmail+maildrop
3           其他软件组:上述软件所需要的配套软件;
好的,我这里采用RHEL5.4版作为操作系统环境,大家亦可选择CentOS5.4版作为操作系统,两者没有太大区别。
第一步:安装操作系统:
       这一步大家可以采用简化安装,因为我们的主机只是用来做邮件服务器的,所以其他的不必要的组件,大家可以不用安装。主要组件需要mysqlDNS服务器,apache服务器,perl包等,其他的组件可以先不用安装,等到安装好系统后,再选择安装,这样可以加快安装速度。这一步就不详细讲解了。
 
第二步:配置DNS服务器:
       因为我的邮件服务器和我的DNS服务器是一台主机,而且我是在虚拟机的实验环境中,所以需要自己给我的邮件服务器加入解析,那么就需要配置DNS服务器,详细的DNS服务器配置不是本文所要讲的内容,这里仅给出和本文有关的DNS服务器配置脚本。

 

这个就是和我们邮件服务器有关的DNS配置,注意其中划红线的部分就是加入的邮件服务器解析,这个很重要。如果大家的邮件服务器和DNS服务器不在一台主机上,那么请大家一定要确认您的DNS服务器中加入了这个解析。好了,DNS服务器配置完毕,可以启动DNS服务器了
 service named start

 

如果一切正常,那么就出现这个画面,DNS服务器就讲到这里了,如果大家对DNS服务器的配置有什么不理解的地方,可以联系我小辉  QQ 415090719
 
第三步:安装postfix 首先要申明的是,我们的CentOSRHEL光盘中自带的Postfix默认是不支持mysql的。那么怎么办呢,可以采用源码编译安装,在编译的时候加入mysql
也可以采用src.rpm包的方式安装,但是在安装这个src,rpm包时要修改它的默认参数,然后重新编译即可。下面采用src.rpm的方法来重新编译安装postfix让它支持mysql 。下载postfix-2.3.3-2.src.rpm包,如果大家找不到,可以找我要。然后安装它

 

直接安装可能会出现上述出错画面,缺少/usr/src/redhat/SOURCES这个目录,解决的办法就是建立这个目录即可。建立好目录后,就能顺利安装了。就出现下面的画面了。

 

安装好后,我们需要修改参数,然后重新编译,具体如下

 

然后是编辑那个 postfix.spec文件
vi postfix.spec

 

出现这个画面,我们只需要把第二行的 MYSQL后面的 0改成 1即可然后保存退出。
下面就是开始重新编译了,使用命令rpmbuild –ba postfix.spec 注意您当前所处的路劲哦,不然会找不到文件。在使用上述命令时,请确认你的系统安装了rpm-build这个软件包,不然会报错哦

 

呵呵,我就没有安装。没关系,系统的光盘里面就有,我们直接安装即可,不用到网上去费力的找了。安装好rpm-build后,我们就可以使用rpmbuild –ba postfix.spec这个命令来编译postfix了,可是还是报错,还有没有安装的软件包

 

大家不用急,这些软件包我们的系统光盘中都有的,大家照着去直接到系统光盘中寻找安装就好了,我就不操作了,我直接安装咯。
这里需要说明的是,大家如果都直接到光盘中去寻找那些软件包,安装的时候又可能遇到依赖性问题,所以我的方法是采用 yum机制,将我的光盘设置成yum软件源具体的yum配置,趁我们的编译过程这段时间给大家给出来咯,这样安装就很快速很方便了。
 
RHEL5.4将光盘作为yum源的配置
首先大家挂载光盘到 /mnt/cdrom这个目录下。没有这个目录的自己建立;
第二步,修改yum配置文件

 

我已经给我的配置文件做好了备份,以免出现问题,这个可是个好习惯哦。我那个rhel-debuginfo.repo.back1 是我采用国内的一个站点的软件库作为我的网上yum下载源。免费的哦。Redhat官方的要收费,我们无法使用。好了,废话不多说。我直接给出我的配置文件即可,先给我们的配置文件做个备份,然后清空它,写入以下配置脚本。
[Cluster]
name=Red Hat Enterprise Linux $releasever - $basearch - Cluster
baseurl= file:///mnt/cdrom/Cluster
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
 
[ClusterStorage]
name=Red Hat Enterprise Linux $releasever - $basearch - ClusterStorage
baseurl= file:///mnt/cdrom/ClusterStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[Server]
name=Red Hat Enterprise Linux $releasever - $basearch - Server
baseurl= file:///mnt/cdrom/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[VT]
name=Red Hat Enterprise Linux $releasever - $basearch - VT
baseurl= file:///mnt/cdrom/VT
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
照着写就好了,具体的意义,不是本文要讨论的,有兴趣的朋友,可以联系我小辉 QQ 415090719
 
好了,将光盘作为yum源的方法已经给大家讲了,也配置好了,前面需要安装的软件,大家就能直接通过yum安装了,真是又快又方便。我们的编译postfix也差不多了。我们就回到我们的主题吧。
 
编译好之后,我们就需要安装编译好的,支持mysqlpostfix

 

编译好之后,我们的redhat目录以下就多出了好几个目录,呵呵。大家照着我的操作,进入/usr/src/redhat/RPMS/i386/ 这个目录后,就能看到编译好的支持mysqlpostfixrpm包了。我们要安装的就是它。
 
这里要说明的是,我们安装好系统后,系统默认是安装的sendmail邮件服务器,而我们需要的是postfix这里大家一定要先安装好postfix后再去卸载掉sendmail,不能先卸载sendmail再安装postfix这样会出错。还有一点,如果大家在安装好系统后,已经安装了系统自带的postfix,而且已经卸载掉了sendmail 那么在这里安装这个postfix的时候,会出现冲突,而无法安装,解决的办法是先重新安装sendmail,然后卸载掉系统自带的那个postfix,再安装这里的postfix,再卸载掉sendmail就能完美的解决这冲突问题了。而且建议大家只用其中一个,不要两个都装上。好了,我们直接安装即可。然后卸载掉sendmail
呵呵,讲了这么多,终于把postfix安装好了,真是麻烦啊,我们看看它支持mysql

 

呵呵,终于成功了,支持mysql 
下面开始安装dovecot这是一个收信协议软件,后起之秀,支持很多功能,支持pop3,支持imap 功能很多,相对于使用courier-imap我更喜欢用dovecot。好了,系统光盘里面是自带有dovecot的我们yum安装即可。
 
终于到了配置的时候了,第一配置我们的postfix
先做好基本配置
 cp /etc/postfix/main.cf /etc/postfix/main.cf.back
 vi /etc/postfix/main.cf
呵呵,这个文件的内容实在有点多,大家可以只更改其中的关键地方以满足自己的系统环境,其他的保持默认即可。关键的地方,小辉这里给大家罗列出来,注意配置文件的参数两边都要加个空格,即等号两边都有空格。
1         myhostname = deng.linux.com 这个参数在 69行左右,大家更改成自己的主机名即可;
2         mydomain = linux.com  这个参数就是我们的域名 我这里当然就是 dyh.com咯;77行;
3         myorigin = $myhostname 这个是设置邮件表头上面的mail from地址的,大家用默认即可,即取消前面的那个#注释 大概在 92行;
4         inet_interfaces = all  这个就是设置我们的邮件服务器监听所有的端口,在107行;
5         mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
       mail.$mydomain, www.$mydomain, ftp.$mydomain
   这个就重要了,就是mail to的地址了,您的主机能够接收的信件中,mail to写的主机名称需要在这个设置中出现才行,即你的所有主机名,包括别名都要写在这里,在 158行和159行;
6         mynetworks = 10.100.16.0/21, 127.0.0.0/8, hash:/etc/postfix/access  这个设置是决定你要向哪些网段和主机开放使用本邮件服务,很重要哦;在256行;
7         #relay_domains = $mydestination 这个参数就是说如果我们有多台邮件服务器,我们的这台服务器需要将邮件转发到其他服务时,就像Yahoo的邮箱要转发到QQ邮箱上,那么在yahoo的邮箱中就要设置这个转发咯。这里我不需要转发,就不用配置了。大家根据自己需要自行更改;
就是以上七个参数,大家根据自己的系统环境更改即可,其他的保持默认即可;
 
好了,基本的一个Postfix就配置好了,下面就是要配置 dovecot这个提供Pop3和imap功能的服务了,因为我们的postfix只是充当 smtp的作用 但是在邮件的发和收的过程中是需要pop3/imap 和smtp两套协议的,我们的dovecot就是提供pop3和imap功能的咯。下面编辑它的配置文件
cp /etc/dovecot.conf /etc/dovecot.conf.back
vi /etc/dovecot.conf

 

Dovecot的配置文件也是老长了,这里我们需要的也就是我划红线的地方 在20行和21行,21行那个默认是没有的,大家照着我的自己加上listen = *  即可;即监听所有的端口;
好了dovecot也配置好了,我们的基础就配置好了,大家完全可以通过客户端软件进行收发邮件了。呵呵。当然,前提是大家要启动它们咯
       service postfix start
service dovecot start
启动之后,大家肯定迫不及待的想用telnet验证一下吧。呵呵,很遗憾,验证会失败。因为我们的postfix还没有加入任何认证,无论是hash还是mysql都没有,所以验证会失败

 

会出现下面的画面,一直卡在那里,就是因为我们没有给postfix加入验证。OK下面我们就来给我们的postfix加入mysql 。我们直接进入extmail的配置,因为配置extmail是就会给我们的postfix加入mysql的认证。下面我们就进入extmail的配置阶段吧
下载extmail-solution包,大家可以到 http://www.extmail.org/ 上去下载,也可以向小辉所要。这个软件包,包括了extmail所需要的一切软件,也包括了extman的软件。很齐全。
我把我的extmail-solution放在了/public中,并且改名为extmail这样方便操作。好了,下面我们就开始安装extmail所需要的软件,和配置extmail
先安装Apache服务器
yum –y install httpd
yum –y install mysql-sever
yum –y install php
yum –y install php-devel
yum –y install php-mysql
因为考虑到可能要支持php功能,所以我们把php的相关组件一块安装上吧。
 
 
所需要的软件都准备的差不多了,下面开始详细的讲解和配置extmail所需要的相关组件。
第一:在postfix中加入虚拟邮箱设置:
 
这 里简要讲解一下什么是虚拟邮箱,邮箱登陆账户可以是我们真是主机上的用户,但是这样我们就要为每一个邮箱账户在真是主机上建立一个登录账户吗?这样做是相 当不可取的。也没有那个管理员会这样做吧。那就产生了虚拟邮箱的概念,我们的虚拟邮箱中可以提供虚拟账户,这个虚拟账户不能登陆我们的主机,但是可以登陆 邮箱,这样就方便多了,安全多了。而且虚拟邮箱还可以通过mysql 或者LADP等认证数据库来提供认证。这里大家明白虚拟邮箱就是一个专门提供给我们的邮件服务器的账户,域名等,可以通过数据库来提供验证数据的。好了,下面我们开始设置吧
vi /etc/postfix/main.cf
在最下面加入以下设置

 

第一个 virtual_alias_maps 是设置我们的虚拟邮箱的别名的,后面的mysql:表示是通过mysql数据库来提供验证的,也就是说我们的别名数据是放在mysql数据库中的,再后面的那个/etc/postfix….等是说我们的虚拟别名配置文件就是后面的那个文件,一会儿我们就要编辑这个文件,当然这个文件事先是不存在的,我们要自己建立。
第二个 virtual_mailbox_domains表示我们的虚拟邮箱可以接受哪些域。当然这些信息也是放在我们的mysql中的
第三个 virtual_mailbox_maps:表示我们的虚拟邮箱可以接受哪些账户,就是我们的邮箱登陆账户咯,也是放在mysql数据库中的。后面的是它的设置文件
最后一个是和maildrop有关的,表示我们的邮件分发交给maildrop来做,因为maildrop是个垃圾邮件过滤软件,所以我们通过它来分发邮件就能起到过滤掉一些垃圾邮件的目的。
 
接下来我们当然就是编辑虚拟邮箱的那些配置文件咯
vi /etc/postfix/mysql_virtual_alias_maps.cf
内容如下:
 
user = extmail
 
password = extmail
hosts = localhost
dbname = extmail
table = alias
select_field = goto
where_field = address

这里给大家稍微解释一下,第一个user表示我们的数据库使用用户名,这里是要根据我们的真实数据库来设置的,这里采用extmail是因为我们后面直接采用导入extmail已经设置好的数据库来的,它内建的数据库名称就是extmail使用账户是extmail 密码是extmail

 
这样我们就不用自己去添加数据库,添加表,添加字段了,如果大家不想使用extmail自带的数据库模板,也可以自己手动建立数据库。这里就要做修改咯,我比较懒,就直接使用extmail自带的数据库模板吧。呵呵。
 
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'

解释同上

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

 

 
好了,建立了我们的虚拟邮箱了,也做好了相应的配置了。下面就该添加 courier-authlib模块咯
Courier-authlib是一个数据认证库,是maildrop的关键组件,这里要使用maildrop就必须要安装这个东东
我们转到我们的extmail软件包所在目录,那个软件包里面什么都有,包括courier-authlib
cd /public/extmail/RPMS
rpm –ivh  libtool-libs-1.5.**.EL4.2.i386.rpm
rpm -ivh courier-authlib-0.60.2-1ext.i386.rpm
rpm -ivh courier-authlib-devel-0.60.2-1ext.i386.rpm
rpm -ivh courier-authlib-mysql-0.60.2-1ext.i386.rpm
安装最后一个软件包的时候,会有依赖性问题

 

第一个需要安装openssl097a-0.9.7a-9.el5_4.2.i386.rpm
我们从网上下载这个软件包,然后安装
rpm –ivh openssl097a-0.9.7a-9.el5_4.2.i386.rpm
后面的缺少的库文件,需要安装mysqlclient14-4.1.22-1.el4s1.1.i386.rpm
我们也从网上下载后,安装即可
rpm –ivh mysqlclient14-4.1.22-1.el4s1.1.i386.rpm
然后就能顺利安装courier-authlib-mysql
安装好了courier-authlib我们就要配置它了,它的配置文件是/etc/authlib/authmysqlrc
cp /etc/authlib/authmysqlrc /etc/authlib/authmysqlrc.back
把这个文件内容清空然后写入以下内容
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)'
 
 
有关数据库的我就直接使用了默认值,大家可根据自己的环境修改。
然后就是启动courier-authlib

 

正常的话,启动就应该出现以上画面了,说明我们的courier-authlib开始工作了,下面还要修改authdaemon socket目录权限,如果该目录权限不正确修改,maildroppostfix等将无法正确获取用户的信息及密码认证
 
chmod 755 /var/spool/authdaemon/
 
修改好权限之后,就是安装我们的maildrop了,maildrop软件包也是在我们的那个extmailRPMS目录下,真是个百宝箱啊
 
rpm -ivh maildrop-2.0.4-1ext.i386.rpm
rpm -ivh maildrop-man-2.0.4-1ext.i386.rpm
这两个就是我们的maildrop软件了。安装好后,还需要我们的postfix支持才行
为了使Postfix支持Maildrop,必须修改/etc/postfix/master.cf文件,注释掉原来的maildrop的配置内容,大概在57行左右。并添加:
maildrop   unix        -       n        n        -        -        pipe
flags=DRhu user=vuser argv=maildrop -w 90 -d ${user}@${nexthop} ${recipient} ${user} ${extension} {nexthop}
由于maildrop不支持一次接收多个收件人,因此必须在main.cf里增加如下参数:
 
maildrop_destination_recipient_limit = 1

 

修改之后的postfix主配置文件如上图
重启postfix
注意:
maildrop RPM包安装时,会自动创建vuser用户及vgroup用户组,专门用于邮件的存储,vuser:vgroupuid/gid都是1000,这与一般的邮件文档中提及用postfix用户存邮件不一样。因为postfix用户的uid一般都低于500,而Suexec模块编译时对UID/GID的要求是要大于500,因此使用postfix用户不能满足要求。其次,如果用Maildrop作为投递代理(MDA),以postfix身份投递的话,会导致postfix MTA错误。
 
下面配置APACHE服务器,因为我们的虚拟邮箱需要在apache服务器中设置虚拟主机,具体的Apache服务器的配置不是本文重点,这里小辉仅给出和邮件服务器有关的配置即可。如果大家有兴趣,可以联系我 小辉 QQ 415090719
这里修改几个参数即可
265行的ServerName www.linux.com:80 改成自己的主机名;
 
210行的Include conf.d/*.conf 这个参数大家要注意一下,是说,我们在/etc/httpd/conf.d/这个目录下的设置文件会加入到我们的/etc/httpd/conf/httpd.conf这个设置文件中来,Apache在启动后会去读取这个目录下的设置文件,并运行它们。所以我们的虚拟机设置文件就放到这个目录下咯。方便。
 
747行的 #AddDefaultCharset UTF-8 将它注释掉,不然会和extmail的编码冲突
其他的设置就不是本文所讨论的了
我们直接在/etc/httpd/conf.d   目录中建立我们的邮箱虚拟主机
touch /etc/httpd/conf.d/vhost_extmail.conf
vi /etc/httpd/conf.d/vhost_extmail.conf
内容如下:
 
# VirtualHost for ExtMail Solution
<VirtualHost *:80>
ServerName mail.extmail.org
DocumentRoot /var/www/extsuite/extmail/html/
 
ScriptAlias /extmail/cgi/ /var/www/extsuite/extmail/cgi/
Alias /extmail/ /var/www/extsuite/extmail/html/
 
ScriptAlias /extman/cgi/ /var/www/extsuite/extman/cgi/
Alias /extman/ /var/www/extsuite/extman/html/
 
# Suexec config
SuexecUserGroup vuser vgroup
</VirtualHost>
这样把我们的邮箱虚拟主机的主目录也就是DocumnetRoot的设置值设定到 /var/www/extsuite/extmail/html/把我们的cgi程序直接放到我们的 /var/www/extsuite/extmail/cgi并通过scriptsAlias这个设置,让这个目录下的文件都可以执行,前提是文件本身有能被执行的权限,不然会出错。这个后面会讲到。后面的那个extman也是类似的解释。至于最后面的那个suexec是我们的maildrop要用到的,大家照着写就是了,不然会报错。但是我们并没有/var/www/extsuite/这个目录哦。呵呵,不用担心,这里先写上,后面我们配置extmailextman时自然会建立这些目录的。启动apache,这是会出现警告信息,就是说没有那个目录。大家先不用管它,后面会讲到。
service httpd start
 
 
喔,终于到了配置我们的extmail的时候了,真是复杂啊
转到我们的extmail所在的目录
 
cd /public/extmail/src    

 

这个是我们的extmailextman所在的目录,因为都是tar包。需要解压,我们创建一个解压目录,这个目录也是我们extmail的访问目录
mkdir /var/www/extsuite/
然后将extmail-1.1.1.tar.gzextman-1.1.tar.gz全部解压到/var/www/extsuite/这个目录下。注意,大家解压后修改一下名字,改成extmailextman就行了。不然太长了
tar –xzvf extmail-1.1.1.tar.gz  -C /var/www/extsuite/
tar –xzvf extman-1.1.tar.gz  -C /var/www/extsuite/
cd /var/www/extsuite/
mv extmail-1.1.1 extmail
mv extman-1.1 extman
接着又要回到我们的那个extmail百宝箱目录,需要安装一个软件,呵呵
cd /public/extmail/RPMS
rpm -ivh perl-Unix-Syslog-1.0-1ext.i386.rpm
这个是和日志有关的。
然后我们又要回到我们的 /var/www/extsuite/extmail  了。开始编辑extmail的配置文件

 

把那个webmail.cf.default文件copy一份,并改名为webmail.cf 这样就直接编辑webmail.cf这个文件即可。
主要是修改一些编码,和语言之类的
74 SYS_USER_LANG = zh_CN
84 SYS_USER_CHARSET = gb2312
136行到140行:和数据库有关的
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
这里大家根据自己的数据库名称和密码来修改,我直接就用extmail提供的了。
还有最后一行
SYS_G_ABOOK_FILE_CHARSET = gb2312
改成国标码即可。
由于SuEXEC的需要,必须将extmailcgi目录修改成vuser:vgroup权限
chown -R vuser:vgroup /var/www/extsuite/extmail/cgi/
 
OK,我们的extmail配置好了,下面配置extman

 

和配置webextmail差不多
39 SYS-LANG = zh_CN
127130行和数据库有关的,大家根据自己的情况修改,我这里默认
SYS_MYSQL_USER = webman
SYS_MYSQL_PASS = webman
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
接着我们又需要转到我们的百宝箱所在目录了,又要安装一个软件
cd /public/extmail/RPMS
rpm –ivh perl-GD-2.35-2ext.i386.rpm
在RHEL 5.4中缺少gd这个依赖软件,我们可以直接通过yum安装即可
这个软件的作用就是提供显示验证码的,不然不安装这个软件是不会显示出验证码的,我们就登陆不进去了。所以请务必安装好这个。
接着当然也是和extmail一样啦,要修改extman的权限
chown -R vuser:vgroup /var/www/extsuite/extman/cgi/
终于差不多了,我们可以打开数据库了,前面我们已经安装了mysql
/usr/bin/mysql_install_db  初始化数据库
Service mysqld start   启动mysql
然后我们导入extman自带的数据库模板,我们就不用自己手动去建立数据库了,方便
mysql -u root -p < /var/www/extsuite/extman/docs/extmail.sql
这里我们是以root用户来操作数据库的,刚开始安装好的数据库root账户是没有密码的
所以在输入上述命令后,要我们输入密码时,我们直接敲回车即可。
mysql -u root -p < /var/www/extsuite/extman/docs/init.sql
好了,数据库建立好了,下面链接基本库到extmail
mkdir /tmp/extman/
chown –R vuser:vgroup /tmp/extman/
建立刚才导入mysql的postmaster@extmail.org帐户的Maildir,请输入如下命令:
cd /var/www/extsuite/extman/tools
./maildirmake.pl /home/domains/extmail.org/postmaster/Maildir
chown -R vuser:vgroup /home/domains/extmail.org
注意,有时候会出现无法执行  pl文件的情况,请查看你的tools目录下的.pl文件是不是具有可执行的权限,我以前就遇到过权限设置不对.
OK 配置的差不多了。现在激动人心的时刻到了,我们可以先进行部分功能的测试了
 
测试 authlib
 
[root@deng tools]# /usr/sbin/authtest -s login postmaster@extmail.org extmail
Authentication succeeded.
 
     Authenticated: postmaster@extmail.org  (uid 1000, gid 1000)
    Home Directory: /home/domains/extmail.org/postmaster
           Maildir: /home/domains/extmail.org/postmaster/Maildir/
             Quota: 104857600S
Encrypted Password: $1$phz1mRrj$3ok6BjeaoJYWDBsEPZb5C0
Cleartext Password: extmail
           Options: (none)
[root@deng tools]#
如果出现以上所示,那么恭喜你测试通过了
这样表明ExtMan的正确安装,数据库也正确导入,courier-authlib能正确连接到mysql数据库
下面我们就可以访问我们的web页面了
在浏览器中输入您的主机地址 ,这里是我的主机地址

一切顺利的话,就出现以上画面了,那么就成功一大半了,我们可以登陆管理界面,添加新域,而不是使用那个默认的测试用的extmail.org.OK,我们登陆管理界面,然后添加一个我们自己的域,需要说明的是,在RHEL中管理员登陆的验证码问题,小辉一直没有解决,在CentOS中就不会出现这个问题,在RHEL中验证码始终输入不正确,所以小辉在RHEL中直接修改extman的配置文件,关闭验证码功能,具体的参数如下:

 vi /var/www/extsuite/extman/webman.cf

在第21  SYS_CAPTCHA_ON = 0 修改成 0后将关闭验证码功能。具体的webman.cf的参数,比较多,大家有兴趣可以联系我。

登陆后台后,会出现上述界面,大家可以自行添加域,管理员,用户,限制用户配额等等功能。我这里就添加一个linux.com的域

添加一个名为root 密码也是root的管理员

我们再通过前天的免费注册邮箱注册几个用户,当然也可以后台添加用户。用这几个用户做后面的测试

 

这个是我注册的一个deng@linux.com的用户,当然是我名字的首拼音哈。大家谅解。呵呵
OK,这下算是成功一半了,下面就该配置 dovecot了
配置dovecot
首先我们备份我们的配置文件
cp /etc/dovecot.conf /etc/dovecot.conf.back
vi /etc/dovecot.conf
清空里面的所有内容,然后写入以下内容
base_dir=/var/run/dovecot
protocols = imap pop3
listen = *
disable_plaintext_auth = no
ssl_disable = yes
#protocols=imap pop3 imaps pop3s
#ssl_disable = no
#ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem
#ssl_key_file = /etc/pki/dovecot/private/dovecot.pem
mail_location = maildir:/var/spool/mail/%d/%n
auth default {
        mechanisms = PLAIN LOGIN CRAM-MD5 DIGEST-MD5
        passdb sql {
                args = /etc/dovecot-mysql.conf
        } 
userdb sql {
                args = /etc/dovecot-mysql.conf
        } 
socket listen {
                client {
                        path = /var/run/dovecot/auth-client
                        mode = 0660
                        user = postfix
                        group = postfix
                } 
}
first_valid_uid = 89
加红色的部分,比较重要,是我们的dovecot和mysql联系的配置文件,当然事先也是没有的,我们要自己手动建立,然后编辑它。我的联系文件就是 /etc/dovecot-mysql.conf
其他的参数,比较多,不可能一一讲到,有兴趣的朋友可以联系 小辉 QQ  415090719
下面编辑/etc/dovecot-mysql.conf文件
vi /etc/dovecot-mysql.conf
写入以下内容
driver = mysql
connect = host=/var/lib/mysql/mysql.sock dbname=extmail user=extmail password=extmail
default_pass_scheme = MD5
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir, 89 AS uid, 89 AS gid FROM mailbox WHERE username = '%u'
红色部分是和数据库有关的设置,大家根据自己的环境来设置,不要照着我的抄哦,我是使用的extmail的默认数据库咯。
然后就是启动 dovecot
service dovecot start
如果一切正常就出现以下画面了
[root@deng ~]# service dovecot start
Starting Dovecot Imap: [  OK  ]
好了,基本的extmail已经配置好了,我们可以试试,收信和发信了
首先试试发信吧

 

呵呵,发信正常
在试试收信,也就是试试dovecot

 

发信出现问题了,这是怎么回事呢?明明登陆进去了,怎么又被弹出来了呢?看看日志怎么说

 

日志说,Jul  9 15:20:37 deng dovecot: POP3(dyh@linux.com): mkdir(/var/spool/mail/linux.com/dyh/cur) failed: Permission denied
下面我们就去看看这个地方的权限是不是设置有问题
drwxrwxr-x  2 root   mail   4096 Jul  9 15:03 mail
看到了吗,我们的/var/spool/mail这个目录只有读没有写的权限,所以在写入的时候会出错。
我们修改以下试试
chmod -R 777 /var/spool/mail/
然后我们再试试

 

哦耶,登进去了 Logged in 后面也没有报错,我后面是连续敲了几个回车,好让大家看到确实没报错。我们是确实登陆进去了
OK 发信和收信都没问题了,我们使用web界面试试,看能不能正常的收发信件。

 

我用deng@linux.com 这个用户给 dyh@linux.com这个用户发一封信,主题是test内容也是test 发信提示成功。然后我们到dyh@linux.com这个账户中去看看,有没有收到信件

 

晕死,提示没有信件。明明发出去了啊。真是郁闷。没关系,看看日志怎么说。95%的问题都可以通过日志解决,大家一定要养成看日志的习惯。

 

查看邮件队列,晕死,邮件全都卡在队列里了,没有发出去,到底怎么回事呢?

 

通过查看日志,发现是maildrop 出现了问题,maildrop怎么会出现问题呢,安装没有问题,那就只能是配置上可能出现问题咯,配置上只有/etc/postfix/master.cf这个文件中要写入maildrop支持,那赶快去看看吧。呵呵,不看不知道,一看吓一跳,我的maildrop的配置没有写上。
maildrop   unix        -       n        n        -        -        pipe
flags=DRhu user=vuser argv=maildrop -w 90 -d ${user}@${nexthop} ${recipient} ${user} ${extension} {nexthop}
这个居然没有,我晕死了,呵呵,可能是编辑后没有保存的原因吧。现在加上,再看看能收发信件了吗
Service postfix restart

 

呵呵,有了,收件箱里面有收到邮件了。
OK收发信件都正常了,我们的基本的 postfix+dovecot+mysql+courier-authlib+extmail+extman 完全成功了。现在大家可以使用这一套邮件系统了。至于其他组件,比如extmail的图形分析组件,sasl认证组件,杀毒软件的安装等等其他组件,小辉这里就不写了,要再写下去,可能就天黑了。呵呵
 
希望本文能给大家带来一些帮助,最好的老师是google和百度查看日志能解决 95%的问题,大家在遇到问题时不要急着百度或者google,先看日志,再百度。OK就讲到这里了
  评论这张
 
阅读(1374)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018