六、Dovecot的安装与配置
Dovecot是一个开源的IMAP、POP3服务器,它支持 MySQL 、 PostgreSQL 、LDAP 、PAM 等的认证,这方面基本上和 Courier-IMAP 是相同的。但是在设置上却比Courier-IMAP简单了许多。同时Dovecot可以做imap/pop3 、mda角色的工作。执行如下命令完成Dovecot安装。
1.
[root@mail html]
# yum install dovecot
安装完成后,就开始配置工作,编辑 /etc/dovecot.conf 为以下内容
01.
[root@mail html]
# cat /etc/dovecot.conf
02.
base_dir=/var/run/dovecot
03.
protocols=imap pop3
04.
listen=*
05.
disable_plaintext_auth = no
06.
ssl_disable =
yes
07.
mail_location = maildir:/var/spool/mail/%d/%n
08.
09.
auth default {
10.
mechanisms = PLAIN LOGIN CRAM-MD5 DIGEST-MD5
11.
passdb sql {
12.
args = /etc/dovecot-mysql.conf
13.
}
14.
userdb sql {
15.
args = /etc/dovecot-mysql.conf
16.
}
17.
socket listen {
18.
client {
19.
path = /var/run/dovecot/auth-client
20.
mode = 0660
21.
user = postfix
22.
group = postfix
23.
}
24.
}
25.
}
26.
first_valid_uid = 1000
27.
[root@mail html]
#
编辑 /etc/dovecot-mysql.conf 为以下内容,这个配置文件主要用于连接MySQL数据库。
1.
[root@mail html]
# cat /etc/dovecot-mysql.conf
2.
driver = mysql
3.
connect = host=/var/lib/mysql/mysql.sock dbname=postfix user=postfix password=postfix
4.
default_pass_scheme = MD5
5.
password_query = SELECT password FROM mailbox WHERE username = '%u'
6.
user_query = SELECT maildir, 1000 AS uid, 1000 AS gid FROM mailbox WHERE username = '%u'
7.
[root@mail html]
#
启动dovecot服务,并设为开机自动运行。
1.
[root@mail html]
# /etc/init.d/dovecot start
2.
Starting Dovecot Imap: [ OK ]
3.
[root@mail html]
# chkconfig --level 35 dovecot on
七、 Extmail的配置
通过上面的设置我们已经完成了一个基本的邮件服务器系统,它能够发送、接收邮件,能够对用户进行身份验证等工作。用户可以使用Outlook、Foxmail之类的工具来发送和接收邮件。
对于用户临时查看一下邮件,他们就不需要将邮件下载到本机查看。这个时候我们可以为用户搭建一个Webmail吧。
基于我们已经完成的邮件服务器,我们只需要给用户提供一个基于浏览器访问的mail工具就可以了。这类工具有很多:OpenWebmail、Extmail等。
Extmail 是一个以perl语言编写,面向大容量/ISP级应用,免费的高性能Webmail软件, ExtMail套件用于提供从浏览器中登录、使用邮件系统的Web操作界面,它以GPL版权释出,设计初衷是希望设计一个适应当前高速发展的IT应用环境,满足用户多变的需求,能快速进行开发、改进和升级,适应能力强的webmail系统。
对于国内的电子邮件系统来说,无论是从系统功能、易用性还是中文化等方面,ExtMail 平台都是一个相当不错的选择。Extmail 套件可以提供给普通邮件用户使用,而Extman套件可以提供给邮件系统的管理员使用。更多关于Extmail的介绍请baidu之。
Extmail安装也比较简单先在/var/www先创建一个用与存放Extmail的目录extsuite,然后将下载回来的extmail解压到该目录下,并将解压后的目录修改为extmail。
1.
[root@mail ~]
# mkdir /var/www/extsuite
2.
[root@mail ~]
# tar -zxvf extmail-1.2.tar.gz -C /var/www/extsuite/
3.
[root@mail extsuite]
# mv extmail-1.2/ extmail
接下来编辑配置文件,使其能够和Postfix邮件服务器结合起来提供服务,修改部分配置信息如下:
01.
[root@mail extsuite]
# cp extmail/webmail.cf.default extmail/webmail.cf
02.
SYS_USER_LANG = en_US
#默认语言,修改为zh_CN
03.
SYS_USER_CHARSET = utf-8
#Web界面默认的字符集,修改为gb2312
04.
SYS_MIN_PASS_LEN = 2
#最小的密码长度,修改为6
05.
SYS_MFILTER_ON = 1
#打开过滤器
06.
SYS_NETDISK_ON = 1
#打开网络硬盘
07.
SYS_AUTH_TYPE = mysql
#使用<a href="http://www.it165.net/database/dbmy/" target="_blank" class="keylink">MySQL</a>数据库的认证方式
08.
SYS_MAILDIR_BASE = /home/domains
#邮箱的存储路径,修改为实际路径/var/spool/mail
09.
10.
SYS_MYSQL_USER = db_user
#访问<a href="http://www.it165.net/database/dbmy/" target="_blank" class="keylink">MySQL</a>数据库的用户名,改为postfix
11.
SYS_MYSQL_PASS = db_pass
#使用的密码,改为postfix
12.
SYS_MYSQL_DB = extmail
#访问的库,改为postfix
13.
SYS_MYSQL_HOST = localhost
14.
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
15.
16.
SYS_MYSQL_TABLE = mailbox
17.
SYS_MYSQL_ATTR_USERNAME = username
18.
SYS_MYSQL_ATTR_DOMAIN = domain
19.
SYS_MYSQL_ATTR_PASSWD = pass<a href=
"http://www.it165.net/edu/ebg/"
target=
"_blank"
class=
"keylink"
>word</a>
20.
#SYS_MYSQL_ATTR_CLEARPW = clearpwd #修改密码相关行
21.
SYS_MYSQL_ATTR_QUOTA =
quota
22.
SYS_MYSQL_ATTR_NDQUOTA = netdiskquota
23.
SYS_MYSQL_ATTR_HOME = homedir
24.
SYS_MYSQL_ATTR_MAILDIR = maildir
25.
26.
SYS_G_ABOOK_TYPE =
file
#使用文件方式来保存全局通讯录
27.
SYS_G_ABOOK_FILE_PATH = /var/www/extsuite/extmail/globabook.cf
28.
SYS_G_ABOOK_FILE_LOCK = 1
29.
SYS_G_ABOOK_FILE_CONVERT = 0
30.
SYS_G_ABOOK_FILE_CHARSET = utf-8
#全局通讯录的字符集,改为gb2312
在apache主配置文件中添加如下内容:
01.
[root@mail ~]
# vim /etc/httpd/conf/httpd.conf
02.
……
03.
NameVirtualHost 10.1.1.120:80
04.
&
lt
;VirtualHost 10.1.1.120:80&
gt
;
05.
ServerName mail.it165.net
06.
ServerAdmin admin@it165.net
07.
DocumentRoot /var/www/extsuite/extmail/html/
08.
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
09.
Alias /extmail /var/www/extsuite/extmail/html
10.
Alias /postfixadmin /var/www/html/postfixadmin
11.
SuexecUserGroup postfix postfix
12.
&
lt
;/VirtualHost&
gt
;
13.
&
lt
;Directory
"/var/www/extsuite/extmail/html"
&
gt
;
14.
Order allow,deny
15.
Allow from all
16.
&
lt
;/Directory&
gt
;
修改extsuite目录的用户和组的权限为postfix:
1.
[root@mail ~]
# chown -R postfix.postfix /var/www/extsuite/
编辑完成后保存重启apache服务:
1.
[root@mail extsuite]
# /etc/init.d/httpd restart
2.
Stopping httpd: [ OK ]
3.
Starting httpd: [ OK ]
安装Extmail所需的perl模块,如果你没有安装,通常使用web登录的过程中会有提示。
1.
[root@mail ~]
# rpm -ivh perl-Unix-Syslog-0.100-1.2.el5.rf.i386.rpm
2.
warning: perl-Unix-Syslog-0.100-1.2.el5.rf.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
3.
Preparing...
########################################### [100%]
4.
1:perl-Unix-Syslog
########################################### [100%]
5.
[root@mail ~]
#
八、客户端测试Extmail登录测试,直接使用http://mail.it165.net/extmail即可
输入邮件账户和密码点击“登录”后,如下图所示:
在Windows下可以配置OE或formail等客户端程序:
九、常见问题
报错1:
执行rpm –i postfix-2.3.3-2.src.rpm 报error: cannot create %sourcedir /usr/src/redhat/SOURCES错误?
1.
[root@localhost postfix]
# rpm -i postfix-2.3.3-2.src.rpm
2.
error: cannot create %sourcedir /usr/src/redhat/SOURCES
解决方法:由于没有安装rpm-build执行yum install rpm-build安装即可。
报错2:
执行rpmbuild -ba SPECS/postfix.spec报error: Failed build dependencies: pcre-devel is needed by postfix-2.3.3-2.i386错误?
1.
[root@localhost redhat]
# rpmbuild -ba SPECS/postfix.spec
2.
error: Failed build dependencies:
3.
pcre-devel is needed by postfix-2.3.3-2.i386
解决方法:由于rpmbuild编译过程中依赖的pcre-devel软件包没有安装,执行如下命令安装即可。
1.
[root@localhost redhat]
# yum install pcre-devel
报错3:
在使用http://mail.it165.net/extmail访问extmail过程中提示“Unix::Syslog not found, please install it first! (in cleanup) Undefined subroutine &Ext::Logger::do_closelog called at /var/www/extsuite/extmail/libs/Ext/Logger.pm line 86”
解决方法:下载perl-Unix-Syslog-这个rpm软件包安装即可。
报错4:
在使用http://mail.it165.net/extmail访问extmail,输入用户名和密码,选择登录后提示“Can't chdir to /var/spool/mail/it165.net/yujinlong/, Permission denied”
解决方法:
(1)按照错误提示由于权限的原因,使用ll命令检查,发现postfix用户有权限 www.it165.net
1.
[root@mail ~]
# ll /var/spool/mail/
2.
total 8
3.
-rw-rw---- 1 rpc mail 0 Jan 19 00:07 rpc
4.
drwx------ 3 postfix postfix 4096 Jan 21 23:07 it165.net
(2)使用ps –ef|grep httpd发现apache的程序运行用户是apache
01.
[root@mail ~]
# ps -ef |grep httpd
02.
root 1260 3676 0 07:55 pts/2 00:00:00
grep
httpd
03.
root 27239 1 0 Jan21 ? 00:00:00 /usr/sbin/httpd
04.
apache 27241 27239 0 Jan21 ? 00:00:00 /usr/sbin/httpd
05.
apache 27242 27239 0 Jan21 ? 00:00:00 /usr/sbin/httpd
06.
apache 27243 27239 0 Jan21 ? 00:00:00 /usr/sbin/httpd
07.
apache 27244 27239 0 Jan21 ? 00:00:00 /usr/sbin/httpd
08.
apache 27245 27239 0 Jan21 ? 00:00:00 /usr/sbin/httpd
09.
apache 27246 27239 0 Jan21 ? 00:00:00 /usr/sbin/httpd
10.
apache 27247 27239 0 Jan21 ? 00:00:00 /usr/sbin/httpd
11.
apache 27248 27239 0 Jan21 ? 00:00:00 /usr/sbin/httpd
所以,可以将apache的user和group修改为postfix,或者使用apache的suexec模块。