Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Email Automation - Envio em Lote

Ferramenta desenvolvida em Python com interface gráfica para automatizar o envio de emails em lote de forma simples, organizada e segura.

O projeto foi criado com foco em produtividade, permitindo que usuários enviem mensagens para múltiplos destinatários sem a necessidade de copiar e colar emails manualmente.

Além do envio, a aplicação oferece validação de destinatários, templates reutilizáveis, modo de simulação, registro de logs e configuração segura de credenciais através de variáveis de ambiente.


Objetivo

Este projeto foi desenvolvido como uma solução prática para automatizar tarefas repetitivas relacionadas ao envio de emails.

O objetivo é demonstrar como a programação pode ser utilizada para resolver problemas reais do dia a dia de empresas, equipes administrativas, instituições de ensino e profissionais autônomos.


Funcionalidades

  • Interface gráfica utilizando Tkinter
  • Login local antes do acesso ao painel
  • Inserção manual de destinatários
  • Importação de arquivos .csv
  • Importação de arquivos .txt
  • Validação automática de emails
  • Remoção de emails duplicados
  • Templates reutilizáveis de mensagens
  • Modo simulação (sem envio real)
  • Envio SMTP com ou sem autenticação
  • Delay configurável entre envios
  • Registro completo de atividades em log
  • Configuração segura através de arquivo .env

Tecnologias Utilizadas

  • Python
  • Tkinter
  • SMTP
  • python-dotenv
  • Logging
  • CSV
  • EmailMessage (biblioteca padrão)

Estrutura do Projeto

email-automation/

├── src/
│   ├── templates/
│   │   └── template_default.txt
│   ├── logs/
│   │   └── envios.log
│   │     └── .gitkeep
│   ├── exemplos/
│   │   └── lista_emails_exemplo.csv
│   ├── __init__.py
│   ├── main.py
│   ├── config.py
│   ├── email_sender.py
│   ├── validator.py
│   └── template_manager.py
│
├── .env.example
├── .gitignore
├── requirements.txt
├── README.md
└── LICENSE

Como Executar

Pré-requisitos

Antes de começar, certifique-se de possuir:

  • Python 3.10 ou superior
  • Git (opcional)

Verifique a instalação:

python --version

1. Baixe o Projeto

Clonando com Git

git clone https://github.com/SEU-USUARIO/email-automation.git

Entre na pasta:

cd email-automation

Ou

Baixe o arquivo ZIP diretamente pelo GitHub, extraia o conteúdo e abra o terminal na pasta do projeto.


2. Crie um Ambiente Virtual

python -m venv .venv

3. Ative o Ambiente Virtual

Windows

.venv\Scripts\activate

Linux / macOS

source .venv/bin/activate

Quando ativado, aparecerá algo semelhante a:

(.venv)

4. Instale as Dependências

pip install -r requirements.txt

5. Configure as Credenciais

Copie o arquivo de exemplo.

Windows

copy .env.example .env

Linux / macOS

cp .env.example .env

Edite o arquivo .env:

SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USE_TLS=true
SMTP_TIMEOUT=30

APP_LOGIN_USERNAME=Adm
APP_LOGIN_PASSWORD=8520

SENDER_EMAIL=seu_email@gmail.com
SENDER_NAME=Seu Nome

SMTP_USERNAME=seu_email@gmail.com
SMTP_PASSWORD=sua_senha_de_app

🔐 Como Gerar uma Senha de App do Gmail

O Gmail não permite autenticação SMTP utilizando a senha normal da conta.

É necessário criar uma Senha de App.

1. Ative a Verificação em Duas Etapas

Acesse:

https://myaccount.google.com/security

Ative a opção:

Verificação em duas etapas


2. Acesse Senhas de App

https://myaccount.google.com/apppasswords


3. Crie uma Nova Senha

  1. Clique em Criar
  2. Escolha um nome para o aplicativo
  3. Copie a senha gerada

Exemplo:

abcd efgh ijkl mnop

4. Configure no .env

SMTP_USERNAME=seuemail@gmail.com
SMTP_PASSWORD=abcd efgh ijkl mnop

▶️ Executando a Aplicação

python src/main.py

🔑 Acesso Inicial

As credenciais de acesso são definidas no arquivo .env.

APP_LOGIN_USERNAME=Adm
APP_LOGIN_PASSWORD=8520

Altere esses valores antes de utilizar a aplicação em produção.


📋 Exemplo de Lista de Emails

Inserção Manual

maria@email.com
joao@empresa.com
ana@negocio.com

CSV

email
maria@email.com
joao@empresa.com
ana@negocio.com

📝 Templates

Os templates ficam armazenados em:

src/templates/

Logs

Todas as atividades são registradas automaticamente em:

src/logs/envios.log

O log registra:

  • Emails enviados
  • Erros de envio
  • Emails inválidos
  • Interrupções do processo
  • Simulações realizadas

Modo Simulação

O sistema possui um modo de simulação para treinamento e testes.

Nesse modo:

  • Nenhum email é enviado
  • O fluxo completo é executado
  • Os resultados são registrados normalmente

Ideal para validar configurações antes do envio real.


Boas Práticas Implementadas

  • Configurações separadas em config.py
  • Envio isolado em email_sender.py
  • Validação isolada em validator.py
  • Templates isolados em template_manager.py
  • Credenciais fora do código-fonte
  • Uso de variáveis de ambiente
  • Registro de logs
  • Modo simulação
  • Tratamento de erros SMTP

Solução de Problemas

Erro 535 - Username and Password not accepted

Verifique se:

  • A verificação em duas etapas está ativada
  • Está utilizando uma Senha de App
  • O email foi digitado corretamente
  • Não está utilizando a senha normal da conta Google

Erro 530 - Authentication Required

Verifique se:

  • O login SMTP está sendo executado
  • O usuário SMTP está correto
  • A senha de app está correta
  • TLS está habilitado

Erro: requirements.txt não encontrado

Certifique-se de estar na pasta principal do projeto antes de executar:

pip install -r requirements.txt

Erro: src/src/main.py não encontrado

Você provavelmente está dentro da pasta src.

Volte para a pasta principal do projeto e execute:

python src/main.py

Uso Responsável

Envie emails apenas para destinatários que autorizaram o recebimento das mensagens.

Evite:

  • Spam
  • Listas compradas
  • Conteúdo enganoso
  • Envios em massa sem consentimento

Respeite sempre as políticas do seu provedor de email.


Licença

Este projeto está licenciado sob a Licença MIT.

Consulte o arquivo LICENSE para mais informações.

Desejo um bom uso dessa ferramenta, apesar de simples creio que possa ser útil a alguém.

About

Ferramenta em Python para envio de emails em lote via SMTP.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages