#!/bin/bash

# Define o domínio exato
ALVO="saojosedoriopardo.sp.gov.br"
ARQUIVO_SAIDA="lista_completa_emails.txt"

# Limpa o arquivo antes de começar
> "$ARQUIVO_SAIDA"

echo "Extraindo TODAS as contas do domínio: $ALVO"
echo "Aguarde..."

# Pega a lista de usuários do cPanel
USUARIOS=$(ls -1A /var/cpanel/users/)

for USER in $USUARIOS; do
    
    # Define o caminho onde os e-mails deste domínio estariam
    CAMINHO_MAIL="/home/$USER/mail/$ALVO"

    # Se a pasta do domínio existe neste usuário
    if [ -d "$CAMINHO_MAIL" ]; then
        echo "Domínio localizado na conta do usuário: $USER"
        
        # Lista tudo o que está dentro da pasta do domínio
        for CONTA in $(ls -A "$CAMINHO_MAIL" 2>/dev/null); do

            # Filtros OBRIGATÓRIOS (Pastas de sistema do Dovecot/cPanel)
            # Se remover isso, vai gerar e-mails falsos
            if [ "$CONTA" == "cur" ] || \
               [ "$CONTA" == "new" ] || \
               [ "$CONTA" == "tmp" ] || \
               [ "$CONTA" == "maildirsize" ] || \
               [ "$CONTA" == "dovecot.index" ] || \
               [ "$CONTA" == "dovecot-uidlist" ] || \
               [ "$CONTA" == "dovecot-keywords" ]; then
               # Não faz nada (são arquivos de sistema)
               true 
            else
                # Se for um diretório, é uma conta de e-mail válida. Salva!
                if [ -d "$CAMINHO_MAIL/$CONTA" ]; then
                    echo "$CONTA@$ALVO" >> "$ARQUIVO_SAIDA"
                fi
            fi
        done
    fi
done

echo "---"
echo "Extração finalizada!"
echo "Verifique o arquivo: $ARQUIVO_SAIDA"
