* [[dovecot]]
POPサーバです。

#contents

** インストール
インストールされているか確かめます。あれば、以下のコマンドで、一覧が表示されます。
 rpm -qa |grep dovecot
なければ、http://dovecot.org/releases/から最新版をダウンロードします。~
yumでインストールする場合はmysql5.0がセットでインストールされます。~
今回はmysql4が起動しているテスト環境に入れるのでmakeします。~
http://dovecot.org/releases/2.2/dovecot-2.2.15.tar.gzをダウンロードしました。
ダウンロードして、解凍して、解凍したディレクトリで
 ./configure
 make
 make install
します。
今回はconfigureオプションは指定していませんが
指定する場合は[[Dovecot をソースからコンパイル>http://www.tatsuyoshi.net/toyota/dovecot/CompilingSource.html]]を
参考にしてください。
/usr/local/sbin/dovecot にいます。

** 環境設定
ユーザを作っておきます。

 useradd  -c Dovecot -s /sbin/nologin -d /var/empty/dovecot dovecot

次に設定ファイルを編集します。~
/usr/local/etc/dovecotにはREADMEだけです。~
内容を見てみると
「設定ファイルをここにおいてね。設定ファイルは
/usr/local/share/doc/dovecot/example-configにいるよ」
と書かれていますので指示に従います。

example-configの中のdovecot.confとconf.dディレクトリを
/usr/local/etc/dovecotにコピーします。

では、設定ファイルを編集します。

 ★dovecot.conf
 //25行目あたりに追加
 protocols = imap pop3


 ★conf.d/10-mail.conf
 //31行目あたりに追加
 mail_location = maildir:~/Maildir

以上。~

では、起動させてみましょう。
 /usr/local/sbin/dovecot


 doveconf: Fatal: Error in configuration file /usr/local/etc/dovecot/conf.d/10-ssl.conf line 12: ssl_cert: Can't open file /etc/ssl/certs/dovecot.pem: No such file or directory

エラーが出ました。~
ssl証明書のファイルがないと怒ってます。

今回はテスト環境用なのでSSLは不要です。
設定ファイルを編集します。

 ★conf.d/10-ssl.conf
 //7行目あたりに追加
 ssl = no
 //13行目あたりコメントアウト
 #ssl_cert = </etc/ssl/certs/dovecot.pem
 #ssl_key = </etc/ssl/private/dovecot.pem

ではもう一度起動してみます。

 doveconf: Fatal: Error in configuration file /usr/local/etc/dovecot/dovecot.conf: default_login_user doesn't exist: dovenull

違うエラーになりました。

dovecot2系からdovenullというユーザーも必要なようです。
ユーザーを作成します。


 useradd  -c Dovecot -s /sbin/nologin -d /var/empty/dovenull dovenull

設定ファイルに追記します。

 ★dovecot.conf
 //最後に追加
 default_login_user = dovenull


再度起動してみます。


 doveconf: Fatal: Error in configuration file /usr/local/etc/dovecot/dovecot.conf: default_internal_user doesn't exist: dovecot


…~
設定ファイルに追記します。


 ★dovecot.conf
 //最後に追加
 default_internal_user = dovecot


起動します。

…~
無事に起動できました。


 ps aux|grep dovecot


で起動を確認できます。


では、起動用のスクリプトです。


 #!/bin/bash
 #
 # /etc/rc.d/init.d/dovecot
 #
 # Starts the dovecot daemon
 #
 # chkconfig: 235 65 35
 # description: Dovecot Imap Server
 # processname: dovecot
 # config: /usr/local/etc/dovecot/dovecot.conf
 # config: /etc/sysconfig/dovecot
 # pidfile: /usr/local/var/run/dovecot/master.pid
 # Source function library.
 . /etc/init.d/functions
 if [ -f /etc/sysconfig/dovecot -a $UID -eq 0 ]; then
	. /etc/sysconfig/dovecot
 fi
 RETVAL=0
 PATH=$PATH:/usr/local/sbin
 prog="Dovecot Imap"
 exec="/usr/local/sbin/dovecot"
 config="/usr/local/etc/dovecot/dovecot.conf"
 pidfile="/usr/local/var/run/dovecot/master.pid"
 lockfile="/var/lock/subsys/dovecot"
 start() {
	[ $UID -eq 0 ] || exit 4
	[ -x $exec ] || exit 5
	[ -f $config ] || exit 6
	echo -n $"Starting $prog: "
	daemon --pidfile $pidfile $exec $OPTIONS
	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch $lockfile
	echo
 }
 stop() {
	[ $UID -eq 0 ] || exit 4
	echo -n $"Stopping $prog: "
	killproc -p $pidfile $exec
	RETVAL=$?
	[ $RETVAL -eq 0 ] && rm -f $lockfile
	echo
 }
 reload() {
	[ $UID -eq 0 ] || exit 4
	echo -n $"Reloading $prog: "
	killproc -p $pidfile $exec -HUP
	RETVAL=$?
	echo
 }
 #
 #	See how we were called.
 #
 case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	reload)
		reload
		;;
	force-reload|restart)
		stop
		sleep 1
		start
		RETVAL=$?
		;;
	condrestart|try-restart)
		if [ -f $lockfile ]; then
			stop
			sleep 3
			start
		fi
		;;
	status)
		status -p $pidfile $exec
		RETVAL=$?
		;;
	*)
		echo $"Usage: $0 {condrestart|try-start|start|stop|restart|reload|force-reload|status}"
	RETVAL=2
	[ "$1" = 'usage' ] && RETVAL=0
 esac
 exit $RETVAL


起動・停止・再起動を確認して問題がなければOKです。


次にメールフォルダを作成します。~
mail_locationの設定でホーム直下のMaildirを指定しましたので~
ユーザーのホームディレクトリにMaildirを作成します。

 su - auctest1
 mkdir Maildir

Maildirの中にnew, cur, tmpディレクトリを作成します。

 cd Maildir/
 mkdir new
 mkdir cur
 mkdir tmp

パーミッションの設定をします。

 cd ../
 chmod -R 700 Maildir/

以上で終了です。~
newフォルダにメールを置くと取り込めます。





2014-12-10追記
ログを出力するようにします。

dovecot.confに以下を追記
 log_path=/var/log/dovecot.log
 log_timestamp="%Y-%m-%d %H:%M:%S "

以上



** 外部から接続する

10-auth.confのdisable_plaintext_authをnoにして対応。
本当はplaintextではないほうがいいと思います。


** リンク
[[dovecot>http://www.dovecot.org/]]~
[[メールサーバ構築>http://centossrv.com/postfix.shtml]]~
[[Dovecot をソースからコンパイル>http://www.tatsuyoshi.net/toyota/dovecot/CompilingSource.html]]~

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS