- 论坛徽章:
- 0
|
2006年3月13
anstan的安装笔记
最近公司的邮件服务器经常出I/O error的错误,需要重启courier-imap才可以,所以有了换个imap服务器的想法,用了一下dovecot。因为邮件系统是老系统,存在mysql中的用户密码是不加密的,底下的配置是针对这种情况。
# wget
http://www.dovecot.org/releases/dovecot-1.0.beta3.tar.gz
# tar zxvf dovecot-1.0.beta3.tar.gz
# cd dovecot-1.0.beta3
# ./configure --prefix=/usr/local/dovecot --sysconfdir=/usr/local/etc --with-mysql --without-ssl --disable-ipv6
# make
# make install
# cp /usr/local/etc/dovecot-example.conf /usr/local/etc/dovecot.conf
# useradd -s/sbin/nologin -d/dev/null dovecot
配置dovecot
配置方法一:
编辑/usr/local/etc/dovecot.conf
# vi /usr/local/etc/dovecot.conf
protocols = imap pop3
listen = *
ssl_disable = yes
disable_plaintext_auth = no
default_mail_env = maildir:/var/mailbox/%d/%n
protocol pop3 {
pop3_uidl_format = %u
}
auth default {
mechanisms = plain
passdb sql {
args = /usr/local/etc/dovecot.passdb.mysql
}
userdb sql {
args = /usr/local/etc/dovecot.userdb.mysql
}
}
建立/usr/local/etc/dovecot.passdb.mysql文件
# vi /usr/local/etc/dovecot.passdb.mysql
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfix
default_pass_scheme = PLAIN
password_query = SELECT password FROM mailbox WHERE username = '%u'
建立/usr/local/etc/dovecot.userdb.mysql文件
# vi /usr/local/etc/dovecot.userdb.mysql
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfix
default_pass_scheme = PLAIN
user_query = SELECT maildir AS home, 1001 AS uid, 1001 AS gid FROM mailbox WHERE username = '%u'
配置方法二:
为了避免两次SQL查询,你也可以把dovecot.conf中的userdb sql改成userdb prefetch,这种情况下,sql查询返回的userdb的字段要加前缀“userdb_”,详细的配置文件如下
编辑/usr/local/etc/dovecot.conf
# vi /usr/local/etc/dovecot.conf
protocols = imap pop3
listen = *
ssl_disable = yes
disable_plaintext_auth = no
default_mail_env = maildir:/var/mailbox/%d/%n
protocol pop3 {
pop3_uidl_format = %u
}
auth default {
mechanisms = plain
passdb sql {
args = /usr/local/etc/dovecot.passdb.mysql
}
userdb prefetch {
}
}
建立/usr/local/etc/dovecot.passdb.mysql文件
# vi /usr/local/etc/dovecot.passdb.mysql
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfix
default_pass_scheme = PLAIN
password_query = SELECT password, maildir as userdb_home, 1001 as userdb_uid, 1001 as userdb_gid FROM mailbox WHERE username = '%u'
启动脚本
# vi /etc/init.d/dovecot
#------------------------start----------------------------
#!/bin/bash
#
# /etc/rc.d/init.d/dovecot
#
# Starts the dovecot daemon
#
# chkconfig: - 54 54
# description: Dovecot Imap Server
# processname: dovecot
# Source function library.
. /etc/init.d/functions
test -x /usr/local/dovecot/sbin/dovecot || exit 0
RETVAL=0
prog="Dovecot Imap"
start() {
echo -n $"Starting $prog: "
daemon /usr/local/dovecot/sbin/dovecot
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/dovecot
echo
}
stop() {
echo -n $"Stopping $prog: "
killproc /usr/local/dovecot/sbin/dovecot
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dovecot
echo
}
#
# See how we were called.
#
case "$1" in
start)
start
;;
stop)
stop
;;
reload|restart)
stop
start
RETVAL=$?
;;
condrestart)
if [ -f /var/lock/subsys/dovecot ]; then
stop
start
fi
;;
status)
status /usr/local/dovecot/sbin/dovecot
RETVAL=$?
;;
*)
echo $"Usage: $0 {condrestart|start|stop|restart|reload|status}"
exit 1
esac
exit $RETVAL
#------------------end--------------------------------------------
# chmod 755 /etc/init.d/dovecot
# chkconfig --add dovecot
# service dovecot start
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/2694/showart_84490.html |
|