LoginSignup
14
25

More than 5 years have passed since last update.

DovecotのIMAP/POPテスト環境構築メモ

Last updated at Posted at 2018-03-13

DovecotのIMAP/POPテスト環境構築メモ

CentOS6上にDovecotのIMAP/POPのテスト環境を構築した際のメモを残します。

Dovecotのメールテスト環境目的

本テスト環境の目的は、環境内部からのIMAP/POPコマンドの動作確認、およびdovecotの動作確認です。実用的なIMAP/POPサーバの構築は目的としていません。
以下の動作が確認可能な環境の構築および動作確認を行います。

  • IMAPコマンドによるメールボックスへのアクセス。メッセージの取得。
  • POPコマンドによるメールボックスへのアクセス。メッセージの取得。

本エントリでは、以下で構築したOSX上のCentOS6に構築します。
https://qiita.com/keikmobile/items/2c1cec8b875387a83a71
SElinuxは無効とすることを前提としています。

また、以下エントリで構築したpostfixで受信したメールをIMAP/POPで取得します。
https://qiita.com/keikmobile/items/2440ecebdd02adccc6a1

DovecotのIMAP/POPテスト環境構築・動作確認方針

上記目的を実現するためのIMAP/POPテスト環境・動作確認の方針を記述します。

プロセス構成方針

本IMAP/POPテスト環境は以下のプロセス構成をとる方針とします。

  • IMAP/POPサーバはDovecotを使用する。
  • POP/IMAPクライアントはtelnetおよびコマンドを使用する。
  • Postfix他は、以下のエントリで構築したプロセスを使用する。https://qiita.com/keikmobile/items/2440ecebdd02adccc6a1
  • 上記のプロセスは全て同一のCent OS上に構成する。 以下は各コンポーネントのイメージ。(http://plantuml.com/)

dovecot_image.png

@startuml
[smtp-source,telnet] -right-> [Postfix] : SMTP
[Postfix] -right-> [smtp-sink] : SMTP (Relay)
[Postfix] -down-> [Local user mailbox Maildir format] : (Deliver)
[Local user mailbox Maildir format] -down->[Dovecot]
[telnet] -right-> [Dovecot] :POP/IMAP
@enduml

Dovecot設定値構成方針

Dovecotの振る舞いを設定する設定値は以下の方針で決定します。

  • メールボックスの形式は、Maildir(qmail)形式とする。
  • ユーザデータベースはpasswd-file形式とする。

動作確認方針

本テスト環境の動作確認は以下の方針で実施します。

  • IMAPサーバの動作の確認を行う。以下の確認観点で行う。
    • IMAPクライアントはtelnetコマンドを利用する。
    • IMAPクライアントへの応答
    • Dovecotのログ(/var/log/maillog)
  • POPサーバの動作の確認を行う。以下の確認観点で行う。
    • POPクライアントはtelnetコマンドを利用する。
    • POPクライアントへの応答
    • Dovecotのログ(/var/log/maillog)

Dovecotのメールテスト環境構築手順

Dovecotのインストール

yumでdovecotをインストールし、rpmでインストールされたことを確認します。
chkconfigで起動設定を有効化します。
メールの送信確認で使用するtelnetコマンドもインストールします。

$ sudo yum -y dovecot telnet
...
$ rpm -qa | egrep 'dovecot|telnet'
...
$ chkconfig dovecot on
...

Dovecotの設定

以下を参考ににdovecotの設定を行います。
https://wiki2.dovecot.org/BasicConfiguration

以下のコマンドを実行し、usersファイルを作成します。passwordの箇所は変更を推奨です。

$ echo "`whoami`:{PLAIN}password:`id -u`:`id -g`::$HOME" > users
$ sudo mv users /etc/dovecot/

passwd-fileを使用するようにconf.d/10-auth.confを変更します。

$ sudo vi /etc/dovecot/conf.d/10-auth.conf 

    # 以下をコメントアウト。
    #!include auth-system.conf.ext

    # 以下のコメントアウトを削除。
    !include auth-passwdfile.conf.ext

conf.d/auth-passwdfile.conf.ext の記述を確認します。

$ cat /etc/dovecot/conf.d/auth-passwdfile.conf.ext 
...
passdb {
  driver = passwd-file
  args = scheme=CRYPT username_format=%u /etc/dovecot/users
}

userdb {
  driver = passwd-file
  args = username_format=%u /etc/dovecot/users
}

以下のコマンドでも同様の結果を得られる事を確認します。

$ doveconf -n passdb userdb 
passdb {
  args = scheme=CRYPT username_format=%u /etc/dovecot/users
  driver = passwd-file
}
userdb {
  args = username_format=%u /etc/dovecot/users
  driver = passwd-file
}

参考: http://wiki2.dovecot.org/BasicConfiguration

dovecotの起動

dovecotを起動します。

sudo service dovecot start

参考: https://wiki2.dovecot.org/RunningDovecot
参考: https://wiki2.dovecot.org/Logging

Dovecotのテスト環境動作確認

IMAPの確認

telnetコマンドでdovecotのIMAP Portに接続しIMAPコマンドを発行してdovecotの動作確認を行います。

$ telnet 127.0.0.1 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN] Dovecot ready.
a login USER PASSWORD # 認証設定で作成したユーザでlogin
a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in
b select INBOX
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1399824069] UIDs valid
* OK [UIDNEXT 1] Predicted next UID
* OK [HIGHESTMODSEQ 1] Highest
b OK [READ-WRITE] Select completed.
c append INBOX {9}
+ OK
TEST MAIL
* 1 EXISTS
* 1 RECENT
c OK [APPENDUID 1399824069 1] Append completed.
d fetch 1 rfc822
* 1 FETCH (FLAGS (\Seen \Recent) RFC822 {9}
TEST MAIL)
d OK Fetch completed.
e close INBOX
e OK Close completed.
f logout
* BYE Logging out
f OK Logout completed.
Connection closed by foreign host.
$ 

"/var/log/maillog"以下に以下の出力が確認可能です。

Apr 14 15:57:31 centos601 dovecot: imap-login: Login: user=<vagrant>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=3765, secured
Apr 14 15:58:24 centos601 dovecot: imap(vagrant): Disconnected: Logged out bytes=84/829

POPの確認

telnetコマンドでdovecotのPOP Portに接続しPOPコマンドを発行してdovecotの動作確認を行います。

$ telnet 127.0.0.1 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user USER # 認証設定で作成したユーザでlogin
+OK
pass PASSWORD # 認証設定で作成したユーザでlogin
+OK Logged in.
stat
+OK 1 9
list
+OK 1 messages:
1 9
.
retr 1
+OK 9 octets
TEST MAIL
.
quit
+OK Logging out.
Connection closed by foreign host.
$ 

"/var/log/maillog"以下に以下の出力が確認可能です。

Apr 14 16:01:05 centos601 dovecot: pop3-login: Login: user=<vagrant>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=3790, secured
Apr 14 16:01:10 centos601 dovecot: pop3(vagrant): Disconnected: Logged out top=0/0, retr=0/0, del=0/1, size=10

参考: https://wiki2.dovecot.org/TestInstallation

14
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
25