You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Dovecot IMAP虚拟用户自定义文件夹存储位置咨询

解答:Postfix+Dovecot虚拟用户Maildir文件夹的存储位置

这是个很常见的疑惑——Dovecot对Maildir格式的IMAP文件夹(非INBOX)的存储方式和直观的文件系统结构不太一样,具体原因和解决方法如下:

1. 默认存储路径:隐藏的子目录

Dovecot默认会把你在IMAP客户端创建的非INBOX文件夹,以隐藏目录的形式存储在用户的Maildir根目录下(也就是/var/vmail/DOMAIN/USER/),命名规则是:

  • 单个文件夹:.文件夹名(比如你创建了Archive,对应的目录就是.Archive/
  • 嵌套文件夹:.父文件夹.子文件夹(比如Archive/Work会变成.Archive.Work/

每个隐藏文件夹内部和INBOX一样,包含cur/new/tmp/三个标准Maildir子目录,你移动的那封邮件就应该在.你的文件夹名/cur/里面。

2. 如何查看这些隐藏目录

因为Linux下以.开头的目录默认是隐藏的,普通的ls命令看不到,你需要用带-a参数的命令:

ls -la /var/vmail/DOMAIN/USER/

执行后就能看到所有隐藏目录,找到你创建的那个文件夹对应的.XXX目录进去,就能找到移动的邮件了。

3. 自定义配置的情况(如果默认路径不对)

如果你修改过Dovecot的命名空间配置,文件夹的存储路径可能会变化。可以检查/etc/dovecot/conf.d/10-mail.conf里的相关设置:

  • 查看mail_location参数,确认Maildir的根路径是否正确
  • 查看namespace inbox段的配置,比如separator(文件夹分隔符)和prefix(前缀),这些会影响文件夹的命名和存储位置。比如如果separator = /,嵌套文件夹可能会以.Folder/Subfolder的形式存在(但这种情况较少,默认是.作为分隔符)。

4. 用Dovecot工具确认邮件位置

如果还是找不到,可以用doveadm命令直接查询邮件的存储位置,比如:

# 替换成你的虚拟用户邮箱地址和文件夹名
doveadm search -u user@domain mailbox "你的文件夹名"
doveadm fetch -u user@domain mailbox "你的文件夹名" path

第二条命令会直接返回邮件的具体文件路径,帮你快速定位。

内容的提问来源于stack exchange,提问作者Martin B.

火山引擎 最新活动