2026年7月26日
2026年7月26日
DovecotでIMAPサーバーを構築する方法
はじめに
自前のIMAPサーバーを構築してOutlookやThunderbirdでメールを受信したい・DovecotとPostfixの連携方法がわからない・SSL/TLSの設定ができていないため接続が拒否される・メールボックスのディスク容量を制限する方法を知りたいといった問題の解決方法を解説します。
症状・原因
Connection refusedでIMAPポート(143/993)に接続できない(Dovecotが起動していない・ファイアウォール)- 認証エラーが発生する(Postfixのユーザー認証設定とDovecotの設定が一致していない)
- SSL証明書エラーで接続が拒否される(自己署名証明書または証明書パスの設定ミス)
- メールが届いているのにIMAPクライアントで表示されない(メールボックス形式の不一致)
解決手順
ステップ1:Dovecot をインストールする
# ✅ Dovecot をインストール(Ubuntu/Debian)
sudo apt install dovecot-core dovecot-imapd dovecot-pop3d -y
# ✅ インストール確認
dovecot --version
# → 2.3.x
# ✅ 起動状態を確認
sudo systemctl status dovecot
sudo systemctl enable dovecot
# ✅ 設定ファイルの場所
ls /etc/dovecot/
# → dovecot.conf conf.d/ ...
# ✅ デフォルト設定を確認
sudo dovecot -n
# → 現在の有効な設定を全て表示
ステップ2:基本設定を行う
# ✅ /etc/dovecot/dovecot.conf の設定
sudo nano /etc/dovecot/dovecot.conf
# ✅ 有効にするプロトコル
protocols = imap lmtp
# ✅ ログ設定
log_path = syslog
auth_verbose = yes
# ✅ /etc/dovecot/conf.d/10-mail.conf(メールボックス設定)
sudo nano /etc/dovecot/conf.d/10-mail.conf
# ✅ Maildir 形式(推奨)
mail_location = maildir:~/Maildir
# ✅ ユーザーのホームディレクトリ
mail_privileged_group = mail
# ✅ /etc/dovecot/conf.d/10-auth.conf(認証設定)
sudo nano /etc/dovecot/conf.d/10-auth.conf
# ✅ プレーンテキスト認証(SSL必須)
disable_plaintext_auth = yes
auth_mechanisms = plain login
# ✅ システムユーザー認証を使用
!include auth-system.conf.ext
ステップ3:SSL/TLS を設定する
# ✅ /etc/dovecot/conf.d/10-ssl.conf の設定
sudo nano /etc/dovecot/conf.d/10-ssl.conf
# ✅ SSL を有効化
ssl = required
# ✅ Let's Encrypt 証明書を使用
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
# ✅ 強力な暗号スイートのみ許可
ssl_min_protocol = TLSv1.2
ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
ssl_prefer_server_ciphers = yes
# ✅ Let's Encrypt で証明書を取得(メールサーバー用)
sudo certbot certonly --standalone \
-d mail.example.com \
--email admin@example.com \
--agree-tos
# ✅ Dovecot が証明書を読めるように権限設定
sudo chmod 640 /etc/letsencrypt/live/mail.example.com/privkey.pem
sudo chgrp dovecot /etc/letsencrypt/live/mail.example.com/privkey.pem
# ✅ Dovecot を再起動
sudo systemctl restart dovecot
# ✅ SSL 接続テスト
openssl s_client -connect mail.example.com:993 -brief
# → CONNECTION ESTABLISHED ← SSL接続成功
ステップ4:Postfix との連携設定
# ✅ Postfix が Dovecot の LMTP でメールを配送するように設定
sudo nano /etc/postfix/main.cf
# ✅ 配送先を Dovecot の LMTP に変更
virtual_transport = lmtp:unix:private/dovecot-lmtp
mailbox_transport = lmtp:unix:private/dovecot-lmtp
# ✅ Dovecot の LMTP を有効化
sudo nano /etc/dovecot/conf.d/20-lmtp.conf
protocol lmtp {
postmaster_address = postmaster@example.com
mail_plugins = $mail_plugins
}
# ✅ Dovecot の SASL 認証を Postfix で使用する
sudo nano /etc/dovecot/conf.d/10-master.conf
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
# ✅ Postfix に SASL 設定を追加
sudo postconf -e "smtpd_sasl_type = dovecot"
sudo postconf -e "smtpd_sasl_path = private/auth"
sudo postconf -e "smtpd_sasl_auth_enable = yes"
sudo systemctl restart dovecot postfix
ステップ5:クライアント設定とトラブルシューティング
# ✅ IMAP 接続テスト(openssl)
openssl s_client -connect mail.example.com:993 -crlf
# 接続後に以下を入力:
# a LOGIN user@example.com password
# → a OK [CAPABILITY ...] Logged in ← ログイン成功
# b LIST "" "*"
# → * LIST (\HasNoChildren) "." INBOX ← フォルダ一覧
# ✅ Thunderbird の設定値
# 受信サーバー: IMAP mail.example.com 993 SSL/TLS
# 送信サーバー: SMTP mail.example.com 587 STARTTLS
# ユーザー名: user@example.com
# ✅ Dovecot のログでエラーを確認
sudo journalctl -u dovecot -f
sudo tail -f /var/log/mail.log | grep dovecot
# ✅ ファイアウォールでポートを開放
sudo ufw allow 143/tcp # IMAP
sudo ufw allow 993/tcp # IMAPS
sudo ufw allow 587/tcp # SMTP STARTTLS
sudo ufw allow 465/tcp # SMTPS
# ✅ メールボックスの容量制限(quota)
# /etc/dovecot/conf.d/90-quota.conf
# quota = maildir:User quota
# quota_rule = *:storage=1G
注意事項
- Dovecotのメールボックスには必ずSSL/TLSを使用してください。
disable_plaintext_auth = yesを設定することで、SSL接続なしの場合は平文での認証を拒否できます - メールサーバーを自前で運用する場合、スパム対策(SPF/DKIM/DMARC)の設定が必須です。設定が不完全だと正規のメールもスパム判定されます
まとめ
DovecotでのIMAPサーバー構築は①apt install dovecot-core dovecot-imapdでインストール・dovecot --versionで確認・dovecot -nで設定確認、②10-mail.confでMaildir形式設定・10-auth.confでプレーンテキスト認証無効化・システムユーザー認証設定、③10-ssl.confでLet's Encrypt証明書設定・ssl=required・TLSv1.2以上を強制・権限設定、④PostfixのLMTP配送設定・10-master.confでSASL認証ソケット公開・PostfixとDovecotの連携、⑤opensslでIMAPSテスト・Thunderbird設定値の確認・ファイアウォール開放・quotaでメールボックス容量制限の手順で構築します。