如何通过 Dovecot 在邮箱上创建子文件夹

如何通过 Dovecot 在邮箱上创建子文件夹

在运行 Postfix 和 Dovecot 的 CentOS 7 机器上,如何在收件箱中创建名为“Bulk”的子文件夹?例如“INBOX.Bulk”。

我原本想使用 maildirmake 命令,但结果却显示“未找到 maildirmake 命令”。经过一番研究,似乎 RHEL 系统上不提供 maildirmake。那么,如何为现有邮箱创建子文件夹呢?

答案1

由于 Dovecot 是 IMAP 服务器,因此通常会使用 IMAP 客户端来创建文件夹。无论 Dovecot 使用什么存储后端,都可以这样做。

Dovecot 还附带doveadm可以管理文件夹(即“邮箱”)的工具:

doveadm mailbox create INBOX.Bulk

但是如果您需要手动执行此操作,则要创建 Maildir 文件夹,请使用创建Maildir文件夹所需的mkdir基本目录和三个子目录。curnewtmp

例如,如果您的邮件根目录为~/Mail,则可以使用以下命令创建一个文件夹:

mkdir -m 0700 ~/Mail/.INBOX.Bulk
mkdir -m 0700 ~/Mail/.INBOX.Bulk/{cur,new,tmp}

虽然在 INBOX 下创建子文件夹主要是 Courier imapd 的功能 - 但使用 Dovecot 就无需这样做;您也可以Bulk直接创建一个命名的文件夹。

mkdir -m 0700 ~/Mail/.Bulk
mkdir -m 0700 ~/Mail/.Bulk/{cur,new,tmp}

答案2

使用 user1686 输入,我创建了一个简单的 shell 脚本,您只需复制和粘贴即可。我还使用 Debian 11 来提供信息。

doveadm 邮箱创建对我来说不起作用,因为一些我无法追踪的错误“doveadm(root):错误:无法放弃权限:用户缺少 UID(请参阅 mail_uid 设置)”因此,对我来说最好的方法是手动创建目录。感谢 user1686 提供此信息!

打开您最喜欢的编辑器,别忘了给它授予可执行权限。您可能必须将 ~/Mail 更改为您的邮箱目录.... 我在我的邮箱中使用 ~/Maildir。

您可以在以下位置找到 dovecot 的邮件目录

/etc/dovecot/conf.d/10-mail.conf

您会发现变量如下所示:

mail_location = maildir:~/Maildir

如果您是根用户并想要更改为其他用户,请键入 su - username,其中将用户名替换为用户名。

如果您有 sudo 并且想要更改为另一个用户,请键入 sudo su - username,其中将用户名替换为用户名。

要退出用户,请输入 exit

您必须为每个用户创建一个邮箱。我没有创建脚本来运行所有用户。但我确信这是可以做到的。

以 root 身份更改用户

su - username

以 sudo 身份更改用户

sudo - username

更改用户的邮箱目录:

cd ~/Maildir

如果你没有 nano,你可以通过输入以下命令获取:

apt-get install nano

打开编辑器

nano makemaildir.sh

退出用户

exit

复制并粘贴脚本:

#!/bin/bash
echo Making mailbox directory $1
mkdir -m 0700 ~/Mail/.$1
mkdir -m 0700 ~/Mail/.$1/{cur,new,tmp}

不要忘记使脚本可执行:

chmod +x makemaildir.sh

您可以像这样运行它:

./makemaildir.sh mymailbox

相关内容