✉️ 构建邮件服务器的旅程,已走到 Dovecot 配置的核心部分!
您在上一篇文章中查看了 Dovecot 的配置文件结构了吗?现在是时候进入实战了。

📌 如果您还没有查看之前的文章,建议先阅读。
👉 在 Linux 上构建邮件服务器 #3:Dovecot 配置文件结构及应用方式

在本文中,我们将一一分析邮件服务器运营所必需的 Dovecot 的 4 个配置文件,并整理出考虑到虚拟用户环境和 Postfix 联动的实用设置方法.


🚀 Dovecot 必需配置文件 4 个

Dovecot 的配置文件很多,一开始可能会让人感到头疼。但只要正确理解这 4 个配置文件,就能够基本运营邮件服务.

配置文件 角色
10-auth.conf 用户认证 (Authentication) 设置
10-mail.conf 邮件存储 (邮箱) 设置
10-master.conf 服务进程 (IMAP、POP3、LMTP 等) 设置
10-ssl.conf TLS/SSL 加密设置

我们将逐个查看这些配置文件并应用考虑到虚拟用户环境和 Postfix 联动的设置.


🛠️ Dovecot 安装时生成的 vmail 用户

首次安装 Dovecot 时,会自动生成一个名为 vmail 的专用用户和组 (UID/GID 5000).
这个用户负责存储和管理邮件数据,并不是系统账号,而是专门处理邮件的账号。

🔍 如何确认 vmail 用户

在终端中运行以下命令进行确认。

id vmail

输出示例:

uid=5000(vmail) gid=5000(vmail) groups=5000(vmail)

或者可以在 /etc/passwd 文件中直接搜索。

grep vmail /etc/passwd

如果 vmail 用户不存在,则需要手动创建,命令如下:

sudo groupadd -g 5000 vmail
sudo useradd -u 5000 -g vmail -s /sbin/nologin -d /var/mail vmail

现在可以利用 Dovecot 配置中的 vmail 用户来存储邮件了!


1️⃣ 10-auth.conf - 用户认证设置

此文件是决定用户认证方式的非常重要的配置文件。
特别是我们计划建立虚拟用户 (Virtual User) 环境, 因此需要考虑到这些设置。

📌 重要设置要点
- 以虚拟用户方式 (数据库联动) 进行认证
- 激活 PLAIN 和 LOGIN 方式认证 (在 SSL 环境中安全使用)
- 使用数据库进行认证,而不是系统账号 (/etc/passwd)

🔹 配置文件示例 (/etc/dovecot/conf.d/10-auth.conf)

disable_plaintext_auth = yes
auth_mechanisms = plain login

!include auth-sql.conf.ext

💡 说明

  • disable_plaintext_auth = yes → 仅在使用 SSL 时允许明文认证
  • auth_mechanisms = plain login → IMAP、POP3 中最常用的认证方式
  • !include auth-sql.conf.ext → 设置信息从数据库获取

即,Dovecot 不直接使用像 /etc/passwd 的系统账号,而是配置为通过 MySQL 等数据库进行认证。

在下一篇文章中,我们将详细讨论 auth-sql.conf.ext 文件!


2️⃣ 10-mail.conf - 邮件存储设置

这是决定邮件实际存储位置的配置文件。通常会与 Postfix 关联以 Maildir 格式存储.

📌 重要设置要点
- 使用 Maildir 格式
- 设置虚拟用户的邮件存储路径
- 设置邮政权权限

配置文件示例 (/etc/dovecot/conf.d/10-mail.conf)

mail_home = %h
mail_location = maildir:%h/Maildir

namespace inbox {
  inbox = yes
}

mail_uid = vmail
mail_gid = vmail
mail_privileged_group = mail

💡 说明

  • mail_home = %h → 使用虚拟用户的主目录 (将在数据库中直接指定路径)
  • mail_location = maildir:%h/Maildir → 以 Maildir 方式存储邮件
  • mail_uid, mail_gid → 使用专用的邮件存储用户 (vmail)
  • namespace inbox { inbox = yes } → 指定为主邮箱 (收件箱)

即,用户的邮件将通过专门的 vmail 账号进行管理,而不是由特定的系统账号管理。

Pigeon mail carrier on a gear representing mail storage


3️⃣ 10-master.conf - 服务进程设置

这是设置 Dovecot 提供的服务 (IMAP、POP3、LMTP 等) 的文件。
特别是我们计划与 Postfix 联动使用 LMTP (本地邮件传输协议),因此需要启用它。

📌 重要设置要点
- 启用 LMTP (与 Postfix 联动)
- 设置认证套接字 (将 Postfix 配置为使用 Dovecot 的认证)

🔹 配置文件示例 (/etc/dovecot/conf.d/10-master.conf)

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
}

service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }

  unix_listener auth-userdb {
    mode = 0600
    user = vmail
    group = vmail
  }

  client {
    path = /run/dovecot/auth-client
  }
}

💡 说明

  • 启用 LMTP (service lmtp)
  • Postfix 在将邮件发送到 Dovecot 时使用 dovecot-lmtp 套接字
  • Postfix 与 Dovecot 的认证联动 (service auth)
  • 将 Postfix 配置为能够通过 /var/spool/postfix/private/auth 套接字获取 Dovecot 的认证信息

即,Postfix 将通过 Dovecot 处理用户认证,并通过 LMTP 联动邮件传递。


4️⃣ 10-ssl.conf - TLS/SSL 加密设置

邮件服务器必须加密!此文件用于通过 SSL/TLS 设置来增强安全性.

📌 重要设置要点

  • 启用 SSL/TLS 加密
  • 可使用 Let’s Encrypt 或自签名证书

📌 ⚠️ 此文中省略了获取 SSL 证书的过程。

​ 假设您已经为域名获取了证书,您可以使用 Let’s Encrypt、自签名证书或商用证书。

配置文件示例 (/etc/dovecot/conf.d/10-ssl.conf)

ssl = required
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem

💡 说明

  • ssl = required → SSL 是必需的
  • ssl_cert, ssl_key → 使用 Let’s Encrypt 证书进行加密

即,确保客户端不能在未加密的情况下访问,并通过 TLS 增强安全性。


🏁 总结

本文中讨论的 Dovecot 必需配置文件 4 个
- 10-auth.conf → 用户认证方式 (应用基于数据库的虚拟用户环境)
- 10-mail.conf → 邮件存储路径及权限设置 (mail_home = %h 应用)
- 10-master.conf → 与 Postfix 联动的 LMTP 和认证服务设置
- 10-ssl.conf → SSL/TLS 安全设置 (Let's Encrypt 配置省略)

只要准确理解这些设置,就可以配置与 Postfix 联动的邮件收发环境。 下一篇将讨论虚拟用户环境所需的数据库设置 (auth-sql.conf.ext)! 🚀

阅读上一篇或邮件服务器构建系列的其他文章!请在底部的“类似文章”或右上角的搜索框中搜索“dovecot”、“mail”!