Skip to content

Automated bulk email sender with Python, JSON queues, secure SMTP, HTML/attachments and full real-time logging. Envio massivo automatizado com Python, filas JSON, SMTP seguro, HTML/anexos e logs completos em tempo real.

Notifications You must be signed in to change notification settings

henriquetourinho/Python-Bulk-Email-Sender

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Bulk Email Sender

EN / PT-BR

EN: A robust and automated system for mass email delivery using Python, organized JSON queues, high customization, real-time logs, and advanced control of email processing. PT-BR: Um sistema robusto e automatizado para envio massivo de e-mails utilizando Python, filas organizadas em arquivos JSON, alta personalização, logs em tempo real e controle avançado dos envios.


📌 About / Sobre

EN

Python Bulk Email Sender is a fully automated batch email system designed to send large volumes of personalized emails using a structured workflow. It processes tasks stored in JSON files, sends emails sequentially, generates detailed logs, handles errors intelligently, supports secure SMTP authentication, and ensures a stable and scalable emailing pipeline.

PT-BR

Python Bulk Email Sender é um sistema totalmente automatizado para envio massivo de e-mails, projetado para enviar grandes quantidades de mensagens personalizadas usando um fluxo de trabalho organizado. Ele processa tarefas salvas em arquivos JSON, envia e-mails de maneira sequencial, gera logs detalhados, lida com erros de forma inteligente, permite autenticação SMTP segura e garante um fluxo de envio estável e escalável.


⚙️ How It Works (100% Detailed) / Como Funciona (100% Detalhado)

🔹 1. Email Tasks in JSON / Tarefas de E-mail em JSON

EN

Each email is represented as a JSON file containing:

  • id — task ID
  • sender — email and SMTP settings
  • recipient — destination email
  • subject — subject line
  • message — text or HTML
  • attachment (optional) — file path
  • status — pending/sent/error
  • timestamp — creation date

All tasks are stored inside the queue folder fila/.

PT-BR

Cada e-mail é representado como um arquivo JSON contendo:

  • id — identificador da tarefa
  • sender — e-mail e configuração SMTP
  • recipient — destinatário
  • subject — assunto
  • message — texto ou HTML
  • attachment (opcional) — arquivo
  • status — pendente/enviado/erro
  • timestamp — data de criação

As tarefas ficam na pasta fila/.


🔹 2. Queue Loading / Carregamento da Fila

EN

When the script runs, it:

  • Reads all files inside fila/
  • Validates JSON structures
  • Loads each task into memory
  • Adds everything to the processing queue

Invalid JSON files are ignored and logged.

PT-BR

Ao iniciar, o script:

  • Lê todos os arquivos dentro de fila/
  • Valida a estrutura JSON
  • Carrega cada tarefa na memória
  • Adiciona tudo à fila de processamento

JSON inválido é ignorado e registrado nos logs.


🔹 3. SMTP Authentication / Autenticação SMTP

EN

Supports all SMTP providers:

  • Gmail
  • Outlook / Hotmail
  • Yahoo
  • Custom domains
  • Corporate SMTP servers

The script validates:

  • SMTP host
  • Port
  • Login
  • Password
  • TLS/SSL

If authentication fails, the task is marked as error and logged.

PT-BR

Suporta qualquer provedor SMTP:

  • Gmail
  • Outlook / Hotmail
  • Yahoo
  • Domínios próprios
  • Servidores empresariais

O script valida:

  • Host SMTP
  • Porta
  • Login
  • Senha
  • TLS/SSL

Se falhar, a tarefa recebe status erro e é registrada no log.


🔹 4. Email Building / Construção do E-mail

EN

The system builds the message using:

  • MIMEText
  • MIMEMultipart
  • MIMEBase

Supports:

  • Plain text
  • HTML
  • Mixed content
  • Attachments of any type

PT-BR

O sistema monta o e-mail usando:

  • MIMEText
  • MIMEMultipart
  • MIMEBase

Suporta:

  • Texto simples
  • HTML
  • Conteúdo misto
  • Anexos de qualquer tipo

🔹 5. Sending Process / Processo de Envio

EN

Each email is sent sequentially:

  1. Open SMTP connection
  2. Authenticate
  3. Build message
  4. Send email
  5. Close connection

If an error occurs, the script:

  • Logs the error
  • Updates task to "error"
  • Continues processing next tasks

PT-BR

Cada e-mail é enviado de forma sequencial:

  1. Abre a conexão SMTP
  2. Autentica
  3. Monta a mensagem
  4. Envia o e-mail
  5. Fecha a conexão

Se ocorrer erro, o script:

  • Registra o erro
  • Atualiza a tarefa para "error"
  • Continua o processamento normalmente

🔹 6. Logs & Status / Logs e Status

EN

Logs generated:

  • sent.log — successful emails
  • error.log — failed tasks
  • system.log — script activity

Each entry includes:

  • Task ID
  • Recipient
  • Timestamp
  • SMTP server used
  • Error traceback

PT-BR

Logs gerados:

  • sent.log — envios bem-sucedidos
  • error.log — falhas
  • system.log — atividades do sistema

Cada entrada contém:

  • ID da tarefa
  • Destinatário
  • Data e hora
  • Servidor SMTP
  • Descrição da falha

🔹 7. Status Updating / Atualização de Status

EN

After each attempt:

  • Success → "sent"
  • Failure → "error" + reason

JSON files are never deleted automatically.

PT-BR

Após cada tentativa:

  • Sucesso → "sent"
  • Falha → "error" + motivo

O JSON nunca é apagado automaticamente.


🔹 8. Continuous Mode / Modo Contínuo

EN

The script can:

  • Run once
  • Or monitor the queue continuously

Useful for:

  • CRON
  • Background processes
  • Automatic pipelines

PT-BR

O script pode:

  • Rodar apenas uma vez
  • Ou monitorar a fila continuamente

Ideal para:

  • CRON
  • Processos em background
  • Pipelines automáticos

🚀 Features / Recursos

EN

  • Bulk email sending
  • JSON queue system
  • Error-resistant workflow
  • Full logging
  • Attachments
  • Secure SMTP
  • HTML support
  • Continuous mode

PT-BR

  • Envio massivo de e-mails
  • Fila baseada em JSON
  • Fluxo resiliente a erros
  • Logs completos
  • Suporte a anexos
  • SMTP seguro
  • HTML
  • Modo contínuo

📦 Installation / Instalação

git clone https://github.com/henriquetourinho/Python-Bulk-Email-Sender
cd Python-Bulk-Email-Sender
pip install -r requirements.txt
python3 sender.py

🧪 JSON Example / Exemplo de JSON

{
  "id": 1,
  "sender": {
    "email": "example@gmail.com",
    "password": "password",
    "smtp": "smtp.gmail.com",
    "port": 587
  },
  "recipient": "client@example.com",
  "subject": "Hello!",
  "message": "<h1>Welcome!</h1>",
  "attachment": "file.pdf",
  "status": "pending",
  "timestamp": "2025-11-27 10:00:00"
}

📜 License / Licença

Distributed under the GPL-3.0 License. Distribuído sob a Licença GPL-3.0.


👤 Author / Autor

Carlos Henrique Tourinho Santana — Salvador, Bahia 🔗 Debian Wiki: https://wiki.debian.org/henriquetourinho 🔗 LinkedIn: https://br.linkedin.com/in/carloshenriquetourinhosantana 🔗 GitHub: https://github.com/henriquetourinho

About

Automated bulk email sender with Python, JSON queues, secure SMTP, HTML/attachments and full real-time logging. Envio massivo automatizado com Python, filas JSON, SMTP seguro, HTML/anexos e logs completos em tempo real.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published