Movendo E-mails da Caixa de Spam para Entrada em Lote - Zimbra

Featured image

Quem nunca teve que mover um e-mail importante da caixa de Spam para Entrada de algumas pessoas manualmente, com certeza você deve ter se perguntando se não dava pra automatizar esse trabalho massante no Zimbra, e eu respondo sim é possível.

Recentemente passei por tal situação e desenvolvi um pequeno script para ajudar vocês.

Basta substituir os argumentos correntamente:

O script abaixo está disponível no meu GitHub:

#!/bin/bash

# Created by cristianovisk
# Github https://github.com/cristianovisk
# Site https://cristianovisk.github.io

function moveMail {
    for email in `zmprov -l gaa | grep $domain`;
    do
        for msgid in `zmmailbox -z -m "$email" s -l 999 -t message "in:$fOrig subject: $subject" | grep mess | awk '{print $2}'`;
            do
                echo "Msg from $email, is moved for Inbox folder - MsgID: $msgid"   
                zmmailbox -z -m "$email" mm $msgid $fDest;
            done;
    done
}

if [ $# -lt 8 ];
then
    echo -e "Your command line contains $# arguments\nNeed:\n-domain domain.com.br\n-subject word_in_subject_to_search\n-fOrig Junk\n-fDest Inbox"
elif [ $# -lt 1 ];
then
    echo "Your command line contains no arguments\nNeed:\n-domain domain.com.br\n-subject word_in_subject_to_search\n-fOrig Junk\n-fDest Inbox"
elif [ $# -eq 8 ];
then
    array=($@)
    for arg in {0..8};
    do
        if [[ ${array[$arg]} == '-domain' ]];then
            domain=${array[$arg+1]};
        elif [[ ${array[$arg]} == '-subject' ]];then
            subject=${array[$arg+1]};
        elif [[ ${array[$arg]} == '-fOrig' || ${array[$arg]} == '-forig' ]];then
            fOrig=${array[$arg+1]};
        elif [[ ${array[$arg]} == '-fDest' || ${array[$arg]} == '-fdest' ]];then
            fDest=${array[$arg+1]};
        fi
    done
    echo -e "Domain: $domain\nSubject: $subject\nFolder Orig: $fOrig\nFolder Dest: $fDest"
    echo -e "-------\nYou confirm the informations above ?\n1) Yes\n2) No"
    read op
    if [ $op -eq 1 ];
    then
        echo "Moving you e-mails... wait and drink a coffee!"
        moveMail
    elif [ $op -eq 2 ];
    then
        echo "Exiting script..."
        exit;
    else
        echo "Chose wrong...";
    fi
fi
git clone https://github.com/cristianovisk/move-emails-zimbra-folder

Baixe com o comando acima, e em seguida execute com o usuário zimbra:

sudo su zimbra
./move-mail.sh -domain yourdomain.com -subject Word_In_Subject -fOrig Junk -fDest Inbox

Agora é sentar tomar um café e esperar os e-mails serem movidos do Spam para a Caixa de Entrada de todas as contas.

Observação: O script foi feito para mover com base no assunto do e-mail, mas é totalmente possível edita-lo para mover com base no remetente ou destinatário, estou disponível para tirar dúvidas no Telegram.