Skip to content

AnswrSe3kr/email-extractor-from-txt

Repository files navigation

Email TXT Extractor

# 📧 Email Extractor from TXT

Ferramenta CLI-only em Python para extração, validação, análise e auditoria forense de e-mails a partir de arquivos .txt, com foco em robustez, rastreabilidade, qualidade de dados e excelente experiência no terminal (Rich + emojis sempre ativos).

Autoria: AnswrSe3kr


✨ Características

  • Extração robusta — Regex RFC-like, suporte a mailto:, TLDs longos
  • Validação — regex avançado (email-validator) + validação de domínios apenas estrutural (labels + TLD 2–24 chars, sem tldextract nem cache)
  • Análise — Padrões de prefixo, classificação (corporate, personal, temporary, disposable, suspicious), agrupamento por departamento (Atendimento, Comercial, Financeiro, Fiscal, RH, etc.)
  • Auditoria forense — Cadeia de custódia, hashes SHA-256, logs estruturados
  • Relatório HTML — Design Apple-like, tabelas sortáveis, filtros, card Departamentos identificados, recomendação para contato genérico (contato@/info@ → setores específicos)
  • Terminal premium — Rich + emojis em todas as mensagens, visual Apple-like (painéis arredondados, paleta consistente), cards e feedback claro

📋 Requisitos

  • Python 3.10+
  • Dependências: rich, chardet, email-validator

🚀 Instalação

cd email_extract_from_txt/email_extractor
pip install -r requirements.txt

Ou com suporte a desenvolvimento:

pip install -r requirements-dev.txt

Uso

O projeto aceita apenas arquivos no formato .txt. Outros formatos (PDF, DOC, etc.) não são suportados.

# A partir da pasta email_extractor/
python main.py arquivo.txt

# Arquivos grandes (streaming)
python main.py arquivo.txt --streaming

Flags:

Flag Descrição
--streaming Processamento linha a linha (recomendado para arquivos grandes)

Não existem outras flags. Saída sempre em ./output/.

Códigos de saída: 0 = sucesso; 1 = erro (validação ou exceção no pipeline). Ver docs/CLI.md e docs/TRATAMENTOS_DE_ERROS.md.


📁 Estrutura de saída

Cada execução gera uma pasta em ./output/:

output/
└── nome-arquivo-YYYYMMDD-HHMMSS/
    ├── report.html    # Relatório HTML (Apple-like)
    ├── emails.txt     # Lista de e-mails válidos
    ├── logs.json      # Log operacional estruturado
    └── custody.json   # Cadeia de custódia forense

🧪 Testes

cd email_extractor
pytest
# ou
pytest -q
pytest --cov=email_extractor

📂 Estrutura do projeto (normativa)

email-extractor-from-txt/
└── email_extractor/
    ├── main.py
    ├── pyproject.toml
    ├── README.md
    ├── CHANGELOG.md
    ├── requirements.txt
    ├── requirements-dev.txt
    ├── .gitignore
    ├── .editorconfig
    ├── .pre-commit-config.yaml
    ├── .python-version
    ├── __init__.py
    ├── cli.py
    ├── pipeline.py
    ├── config.py
    ├── core/
    ├── report/
    │   ├── html.py
    │   └── domain_html.py
    ├── ui/
    ├── tests/
    ├── docs/
    │   ├── README.md
    │   ├── FAQ.md
    │   ├── UX-UI.md
    │   ├── EXECUCAO_SO.md
    │   ├── API.md
    │   ├── ARCHITECTURE.md
    │   ├── CLI.md
    │   ├── DIRETRIZES/
    │   ├── ESTRUTURA_EMAIL_CORPORATIVO.md
    │   ├── FLUXO_DE_FUNCIONAMENTO.md
    │   ├── FUNCIONALIDADES.md
    │   ├── LOGS_E_AUDITORIA.md
    │   ├── OUTPUT.md
    │   ├── SUGESTOES_MELHORIAS.md
    │   ├── TRATAMENTOS_DE_ERROS.md
    │   └── VALIDACAO_EMAIL.md
    └── output/

Documentação: índice em docs/README.md. FAQ (FAQ.md), UX/UI (UX-UI.md), execução por SO (EXECUCAO_SO.md), fluxo (FLUXO_DE_FUNCIONAMENTO.md), funcionalidades (FUNCIONALIDADES.md), CLI (CLI.md), erros (TRATAMENTOS_DE_ERROS.md), saída (OUTPUT.md), logs e auditoria (LOGS_E_AUDITORIA.md), e-mail corporativo (ESTRUTURA_EMAIL_CORPORATIVO.md), validação (VALIDACAO_EMAIL.md), API (API.md), arquitetura (ARCHITECTURE.md), sugestões (SUGESTOES_MELHORIAS.md).


📜 Licença

MIT. Autoria: AnswrSe3kr.


🔗 Conformidade

  • Projeto estruturado para GitHub
  • CLI-only, sem UI gráfica ou API
  • Emojis sempre ativos
  • Saída fixa em ./output/
  • Funciona offline

About

E-mail extractor from txt file

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages