dovecot

出典: wiki.nodoka.org


dovecot-1.1.1のインストール

mysql, opensslが既にインストールされている前提。

cd /usr/local/src
wget http://dovecot.org/releases/1.1/dovecot-1.1.1.tar.gz
tar xvzf dovecot-1.1.1.tar.gz
cd dovecot-1.1.1
./configure \
    --prefix=/usr/local/dovecot \
    --with-ssl \
    --with-ssldir=/usr/local/openssl \
    --with-sql \
    --with-mysql
make
make install

設定ファイル作成

useradd -u 97 -d /usr/libexec/dovecot -c dovecot -s /sbin/nologin
vi /usr/local/dovecot/etc/dovecot.conf

→認証はmysqlで行う。OS認証も許可する。

protocols = imap imaps pop3 pop3s
mail_location = maildir:/home/pop/%d/%n
disable_plaintext_auth = no
ssl_disable = no
ssl_cert_file = /usr/local/dovecot/etc/cert.pem
ssl_key_file = /usr/local/dovecot/etc/key.pem
mail_debug = yes
auth_debug = yes

auth default {
  mechanisms = plain apop cram-md5
  userdb passwd {
  }
  passdb shadow {
  }
  userdb sql {
    args = /usr/local/dovecot/etc/dovecot-mysql.conf
  }
  passdb sql {
    args = /usr/local/dovecot/etc/dovecot-mysql.conf
  }
  user = root
}

起動ファイル作成

vi /etc/init.d/dovecot
#!/bin/bash
#
#       /etc/rc.d/init.d/dovecot
#
# Starts the dovecot daemon
#
# chkconfig: - 65 35
# 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"

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/sbin/dovecot
        RETVAL=$?
        ;;
  *)
        echo $"Usage: $0 {condrestart|start|stop|restart|reload|status}"
        exit 1
esac

exit $RETVAL
chkconfig --add dovecot
chkconfig dovecot on
service dovecot start