decoding

Spostare le email da una cartella ad un altra di un account Zimbra

Reading Time: < 1 minuteFavoriteLoadingAggiungi ai preferiti

Oggi un cliente ci ha chiesto di spostare le email da una cartella ad un’altra del suo account Zimbra.

Potreste pensare: e cosa ci vuole, si va nella webmail, si selezionano le email e si trascinano nella cartella di destinazione. Vero, niente di più facile, se fosse possibile accedere a queste email tramite la webmail.

Il problema è che le email contenute in questa cartella non risultano visibili tramite webmail, probabilmente a causa di qualche flag impostato dal dominio originario della casella; l’account è stato infatti trasferito da un altro provider e le email sono state spostate tramite una sincronizzazione con mailsync.

In questi casi l’unica soluzione è il ricorso alla CLI (Command Line Interface) di Zimbra.

Tramite la CLI, direttamente sul server di posta Zimbra, abbiamo lanciato il seguende comando, che sposta nella cartella /TEST le email risultanti dalla ricerca eseguita sulla cartella /TEST2

zmmailbox -z -m "[email protected]" moveMessage `zmmailbox -z -m "[email protected]" search -t message -l 999 "in:TEST2" | grep ^[0-9] | awk '{ printf("%s,",$2) }'` /TEST

Nello script abbiamo utilizzato due comandi Zimbra

  • moveMessage, per spostare le email
  • search, per trovare le email da spostare

Questo si è reso necessario dal fatto che il comando moveMessage sposta le email partendo dal loro ID di riferimento

moveMessage(mm)              {msg-ids} {dest-folder-path}

Abbiamo quindi, prima cercato le email nella directory desiderata con il comando search

zmmailbox -z -m "[email protected]" search -t message -l 999 "in:TEST2"

poi abbiamo costruito la stringa da passare a moveMessage

| grep ^[0-9] | awk '{ printf("%s,",$2) }'