在运行 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
基本目录和三个子目录。cur
new
tmp
例如,如果您的邮件根目录为~/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