如何将Maildir移动到其他用户的子目录?

当员工离开公司时,我想将他们的整个Maildir移动到“老员工”账户的文件夹中。

鉴于Maildir独占使用文件系统,我觉得应该可以只使用mv ~fred/Maildir ~oldemployees/Maildir/fred或类似的。

如果我这样做,如何触发邮件客户端通知有一个新的目录?

在我们与Dovecot的IMAP服务器上,我这样做,将整个Maildir层次结构复制到另一个用户邮箱的子文件夹中:

定义variables以便可以复制/粘贴

 olduser=martina olddir=/home/$olduser/Maildir newuser=jasmin newgroup=users newdir=/home/$newuser/Maildir newfolder="Martina" newdest="$newdir/.$newfolder" 

将所有文件夹和子文件夹移到另一个用户的子文件夹中

 mkdir -v "$newdest" for d in cur new tmp; do mv -vi "$olddir/$d" "$newdest/"; done # Move only folders which contain mails, # and exclude some special folders like Trash, etc. cd $olddir for d in .??*; do if [[ "$d" =~ ^.(Junk|Trash)$ ]] || [ -z "$(find "$d"/{cur,new,tmp} -type f)" ]; then echo ignore "$d"; continue; fi; mv -vi "$d" "$newdest/$d"; done # subscribe new user to new folders find "$newdir" -maxdepth 1 -type d -name ".$newfolder*" -printf "%f\n" | while read d; do echo ${d/#./}; done | cat - "$newdir/subscriptions" | sort -u > "$newdir/subscriptions.new" mv "$newdir/subscriptions.new" "$newdir/subscriptions" # fix ownership/permissions chmod -R u=rwX,go= "$newdir" chown -R $newuser:$newgroup "$newdir" # Check ownership/permissions find "$newdir" -not -perm 700 -type d -ls find "$newdir" -not -perm 600 -type f -ls find "$newdir" -not -user $newuser -ls find "$newdir" -not -group $newgroup -ls 

鉴于Maildir独占地使用文件系统,我觉得应该可以使用mild / Maildir〜oldemployees / Maildir / fred或类似

这取决于dovecotconfiguration

默认情况下, dovecot使用Maildir ++布局来存储电子邮件。

  • ~/Maildir/new~/Maildir/cur~/Maildir/tmp目录包含INBOX的消息。 tmp目录在传递过程中使用,新消息到达新的读取应该被客户端移动到cur。
  • ~/Maildir/.folder/是一个邮箱文件夹
  • ~/Maildir/.folder.subfolder/是文件夹的子文件夹(即“文件夹/子文件夹”)

所以,在这种情况下,你可以使用命令

 mv ~fred/Maildir ~oldemployees/Maildir/.fred 

您也可以select使用“fs”布局:LAYOUT=fsmail_location 。 这使得文件夹结构如下所示:

  • ~/Maildir/new~/Maildir/cur~/Maildir/tmp目录包含INBOX的消息,就像Maildir ++一样。
  • ~/Maildir/folder/是一个邮箱文件夹
  • ~/Maildir/folder/subfolder/是文件夹的子文件夹

如果我这样做,如何触发邮件客户端通知有一个新的目录?

这也取决于邮件客户端。

我的Squirrelmail总是自动订阅新文件夹。 雷鸟要求你点击[文件] – [订阅…]并激活新文件夹,使其出现在屏幕上。

  1. doveadm邮箱创build'!!新build文件夹2 !!' -u [email protected]
  2. doveadm邮箱订阅'!!新build文件夹2 !!' -u [email protected]
  3. doveadm copy -u [email protected]'!!新build文件夹2 !! 用户[email protected]邮箱“旧文件夹”全部