Как я перемещаю Maildir в подкаталог другого пользователя?

Когда сотрудник покинул компанию, я хочу переместить их весь Maildir, чтобы быть папкой в "старые сотрудники" учетная запись.

Учитывая, что Maildir использует файловую систему исключительно, я чувствую, что должно быть возможно просто mv ~fred/Maildir ~oldemployees/Maildir/fred или подобный.

Если я делаю это, как я инициировал почтовый клиент, чтобы заметить, что существует новый каталог?

2
задан 7 May 2015 в 01:29
3 ответа

На нашем сервере IMAP с Dovecot я делаю это так, чтобы скопировать всю иерархию Maildir в подпапку почтового ящика другого пользователя:

Определите переменные, чтобы остальные можно было копировать / вставлено

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
2
ответ дан 3 December 2019 в 10:02

Учитывая, что Maildir использует исключительно файловую систему, я считаю, что должно быть возможно просто mv ~ fred / Maildir ~ oldemployees / Maildir / fred или подобное

Это зависит от конфигурации dovecot

По умолчанию dovecot использует макет Maildir ++ для хранения электронной почты. Каталоги

  • ~ / Maildir / new , ~ / Maildir / cur и ~ / Maildir / tmp содержат сообщения для INBOX. Каталог tmp используется во время доставки, новые сообщения приходят как новые и прочитанные должны перемещаться в cur клиентами.
  • ~ / Maildir / .folder / - это папка почтового ящика
  • ~ / Maildir / .folder .subfolder / - это подпапка папки (например, «папка / подпапка»)

Итак, в этом случае вы можете использовать команду

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

. Вы также можете дополнительно использовать макет «fs», добавив : LAYOUT = fs к mail_location . В результате структура папок выглядит так: каталоги

  • ~ / Maildir / new , ~ / Maildir / cur и ~ / Maildir / tmp содержат сообщения для INBOX, так же, как с Maildir ++.
  • ~ / Maildir / folder / - это папка почтового ящика
  • ~ / Maildir / folder / subfolder / - это подпапка папки

Если я это сделаю, то как заставить почтовый клиент заметить, что есть новый каталог?

Это также зависит от почтового клиента.

My Squirrelmail всегда автоматически подписывается на новую папку. Thunderbird требовал, чтобы вы щелкнули [Файл] - [Подписаться ...] и активировали новую папку, чтобы она появилась на экране.

4
ответ дан 3 December 2019 в 10:02
  1. doveadm mailbox create '!! New folder 2 !!' -u (скрытый) почтовый ящик подписаться на '!! Новая папка 2 !!' -u (скрытый) copy -u (скрытый) '!! Новая папка 2 !!' пользовательский (скрытый) почтовый ящик 'Старая папка' ВСЕ
-2
ответ дан 3 December 2019 в 10:02

Теги

Похожие вопросы