#!/bin/bash

# Define o domínio que você deseja inspecionar
TARGET_DOMAIN="saojosedoriopardo.sp.gov.br"

# Define o limite máximo de tamanho para as caixas de e-mail em MB
# (250 MB * 1024 KB/MB * 1024 Bytes/KB = 262144000 Bytes)
MAX_SIZE_BYTES=262144000

# Nome do arquivo de saída
OUTPUT_FILE="emails_${TARGET_DOMAIN//./_}.txt"

echo "Buscando contas de e-mail para o domínio: $TARGET_DOMAIN"
echo "E-mails com tamanho até 250MB serão salvos em: $OUTPUT_FILE"
echo "---"

# Limpa o arquivo de saída se ele já existir
> "$OUTPUT_FILE"

# Percorre todos os usuários do cPanel
for USER in $(ls -1A /var/cpanel/users/); do
    # Extrai os domínios associados a este usuário
    USER_DOMAINS=$(grep -i ^dns /var/cpanel/users/"$USER" | cut -d= -f2 | tr ' ' '\n')

    # Verifica se o domínio alvo está entre os domínios do usuário
    if echo "$USER_DOMAINS" | grep -q "$TARGET_DOMAIN"; then
        echo "Verificando o usuário: $USER"
        # Lista os diretórios de e-mail para o domínio alvo
        # Ignora os diretórios padrão de mail (cur, new, tmp)
        for EMAIL_DIR in $(ls -A /home/"$USER"/mail/"$TARGET_DOMAIN"/ 2>/dev/null); do
            if [[ "$EMAIL_DIR" != "cur" && "$EMAIL_DIR" != "new" && "$EMAIL_DIR" != "tmp" && -n "$EMAIL_DIR" ]]; then
                EMAIL_ACCOUNT="${EMAIL_DIR}@${TARGET_DOMAIN}"
                MAILBOX_PATH="/home/${USER}/mail/${TARGET_DOMAIN}/${EMAIL_DIR}"

                # Verifica se o diretório da caixa de e-mail existe e é um diretório
                if [[ -d "$MAILBOX_PATH" ]]; then
                    # Calcula o tamanho total da caixa de e-mail
                    # Usamos 'du -sb' para obter o tamanho em bytes
                    MAILBOX_SIZE=$(du -sb "$MAILBOX_PATH" | awk '{print $1}')

                    if (( MAILBOX_SIZE <= MAX_SIZE_BYTES )); then
                        echo "  Encontrado: $EMAIL_ACCOUNT (Tamanho: $((MAILBOX_SIZE / 1024 / 1024)) MB)"
                        echo "$EMAIL_ACCOUNT" >> "$OUTPUT_FILE"
                    else
                        echo "  Ignorado: $EMAIL_ACCOUNT (Tamanho: $((MAILBOX_SIZE / 1024 / 1024)) MB - Excede 250MB)"
                    fi
                fi
            fi
        done
    fi
done

echo "---"
echo "Busca concluída para o domínio $TARGET_DOMAIN."
echo "E-mails extraídos (até 250MB) foram salvos em: $OUTPUT_FILE"
