十一、安装 Courier-IMAP
 
# tar jxvf courier-imap-4.4.1.tar.bz2
# cd courier-imap-4.4.1
./configure
  --prefix=/usr/local/courier-imap
  --with-redhat
  --enable-unicode
  --disable-root-check
  --with-trashquota
  --without-ipv6
  CPPFLAGS='-I/usr/local/ssl/include/openssl  -I/usr/local/courier-authlib/include'  
  LDFLAGS='-L/usr/local/courier-authlib/lib/courier-authlib' 
  COURIERAUTHCONFIG='/usr/local/courier-authlib/bin/courierauthconfig'
(./configure --prefix=/usr/local/courier-imap --with-redhat --enable-unicode --disable-root-check --with-trashquota --without-ipv6 CPPFLAGS='-I/usr/local/ssl/include/openssl  -I/usr/local/courier-authlib/include'   LDFLAGS='-L/usr/local/courier-authlib/lib/courier-authlib'  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
 
(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 服务:
vim /usr/local/courier-imap/etc/pop3d
POP3DSTART=YES
 
注:如果你想为用户提供 IMAP 服务,则需在 "/usr/local/courier-imap/etc/imapd" 文件中设置 "IMAPDSTART=YES" ;其它类同;
 
新建虚拟用户邮箱所在的目录,并将其权限赋予 postfix 用户:
#mkdir -pv /var/mailbox
#chown -R postfix /var/mailbox
# chown -R postfix.postfix /var/mailbox
 
#cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imapd
#chmod 755 /etc/rc.d/init.d/courier-imapd
#chkconfig --add courier-imapd
#chkconfig --level 2345 courier-imapd on
#service courier-imapd start
 
接下来重新配置 SMTP 认证,编辑 /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
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: localhost
sql_user: extmail
sql_passwd: extmail
sql_database: extmail
sql_select: select password from mailbox where username='%u'
 
从新启动 authlib
/etc/init.d/courier-authlib restart
 
十二、安装 Extmail-1.0.2
 
1 、安装
# tar zxvf extmail-1.0.2.tar.gz
# mkdir -pv /var/www/extsuite
# mv extmail-1.0.2 /var/www/extsuite/extmail
# cp /var/www/extsuite/extmail/webmail.cf.default  /var/www/extsuite/extmail/webmail.cf
 
2 、修改主配置文件
#vim /var/www/extsuite/extmail/webmail.cf
 
部分修改选项的说明:
 
SYS_MESSAGE_SIZE_LIMIT = 5242880
用户可以发送的最大邮件
 
SYS_USER_LANG = en_US
语言选项,可改作:
SYS_USER_LANG = zh_CN
 
SYS_MAILDIR_BASE = /home/domains
此处即为您在前文所设置的用户邮件的存放目录,可改作:
SYS_MAILDIR_BASE = /var/mailbox
 
SYS_MYSQL_USER = db_user
SYS_MYSQL_PASS = db_pass
以上两句句用来设置连接数据库服务器所使用用户名、密码和邮件服务器用到的数据库,这里修改为:
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
 
 
SYS_MYSQL_HOST = localhost
指明数据库服务器主机名,这里默认即可
 
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
连接数据库的 sock 文件位置,这里修改为:
SYS_MYSQL_SOCKET = /tmp/mysql.sock
 
 
SYS_MYSQL_TABLE = mailbox
SYS_MYSQL_ATTR_USERNAME = username
SYS_MYSQL_ATTR_DOMAIN = domain
SYS_MYSQL_ATTR_PASSWD = password
以上用来指定验正用户登录里所用到的表,以及用户名、域名和用户密码分别对应的表中列的名称;这里默认即可
 
SYS_AUTHLIB_SOCKET = /var/spool/authdaemon/socket
此句用来指明 authdaemo socket 文件的位置,这里修改为:
SYS_AUTHLIB_SOCKET = /usr/local/courier-authlib/var/spool/authdaemon/socket
 
 
3 apache 相关配置
 
由于 extmail 要进行本地邮件的投递操作,故必须将运行 apache 服务器用户的身份修改为您的邮件投递代理的用户;本例中打开了 apache 服务器的 suexec 功能,故使用以下方法来实现虚拟主机运行身份的指定。此例中的 MDA postfix 自带,因此将指定为 postfix 用户:
ServerName mail.benet.org
DocumentRoot /var/www/extsuite/extmail/html/
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
Alias /extmail /var/www/extsuite/extmail/html
SuexecUserGroup postfix postfix
 
修改 cgi 执行文件属主为 apache 运行身份用户:
# chown -R postfix.postfix /var/www/extsuite/extmail/cgi/
如果您没有打开 apache 服务器的 suexec 功能 , 也可以使用以下方法解决:
# vi /etc/httpd/httpd.conf
User postfix
Group postfix
 
ServerName mail.benet.org
DocumentRoot /var/www/extsuite/extmail/html/
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
Alias /extmail /var/www/extsuite/extmail/html
 
4 、依赖关系的解决
 
extmail 将会用到 perl DBD::Mysql Unix::syslogd 功能,您可以去 http://search.cpan.org 搜索下载原码包进行安装。
# tar zxvf Unix-Syslog-1.1.tar.gz
# cd Unix-Syslog-1.1
# perl Makefile.PL
# make
# make install
 
# tar -zxf DBI-1.58.tar.gz
# cd DBI-1.58
# perl Makefile.PL
# make
# make install
 
DBD-Mysql 目前最新的版本为 DBD-mysql-4.005 ,但它和系统中的 perl 结合使用时会造成 extmail 无法正常使用,因此我们采用 3 的版本:
# tar zxvf DBD-mysql-3.0002_4.tar.gz 
# cd cd DBD-mysql-3.0002_4
# perl Makefile.PL   ( 此步骤中如果出现类同 Can't exec "mysql_config": No such file or directory at Makefile.PL line 76. 的错误是因为您的 mysql bin 目录没有输出至 $PATH 环境变量 )
# make
# make install