Sistema automatizado para envio em massa de emails personalizados através do Microsoft Outlook, com controles de rate limiting e proteção anti-spam.
O Email Automatic é uma ferramenta Python desenvolvida para automatizar campanhas de email marketing e comunicações em massa de forma profissional e segura. O sistema utiliza integração nativa com o Microsoft Outlook para enviar emails HTML personalizados a partir de uma base de dados em Excel.
- Envio em massa: Processa automaticamente grandes listas de destinatários
- Template HTML: Suporta emails ricos em formatação e design profissional
- Integração nativa: Usa o Outlook instalado no sistema (autenticação automática)
- Progressão visual: Barra de progresso em tempo real com tqdm
- Rate limiting inteligente:
- Intervalo aleatório de 30-60 segundos entre cada email
- Pausa de 10-15 minutos a cada 30 emails enviados
- Randomização para simular comportamento humano
- Redução de bloqueios: Minimiza riscos de ser marcado como spam pelos servidores
- Conformidade: Respeita boas práticas de envio em massa
- Tratamento de erros: Continua o envio mesmo se um email falhar
- Logs detalhados: Registra cada email enviado ou erro ocorrido
- Confirmação de envio: Solicita autorização antes de iniciar o processo
- Salvamento automático: Emails são salvos como rascunho antes do envio
- Python 3.7 ou superior
- Microsoft Outlook instalado e configurado
- Windows (devido à dependência do win32com)
pip install pandas
pip install pywin32
pip install tqdmemail_automatic/
│
├── email_automatic.py # Script principal
├── teste.html # Template HTML do email
├── planilha.xlsx # Base de dados (exemplo)
├── requirements.txt # Dependências do projeto
└── README.md # Este arquivo
Crie uma planilha Excel (.xlsx) com pelo menos uma coluna chamada email:
| [email protected] |
| [email protected] |
| [email protected] |
Crie um arquivo teste.html com o corpo do seu email:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>Olá!</h1>
<p>Este é um email automatizado.</p>
<p>Atenciosamente,<br>Sua Empresa</p>
</body>
</html>No arquivo email_automatic.py, linha 29, altere o assunto:
assunto_email = "Seu Assunto Aqui"python email_automatic.py- Digite o nome da planilha (sem a extensão
.xlsx) - Confirme o envio digitando
simous - Aguarde o processo ser concluído
Linha 60 do código:
time.sleep(random.uniform(30, 60)) # 30 a 60 segundosLinha 63 do código:
if (index + 1) % 30 == 0: # A cada 30 emailsLinha 66 do código:
time.sleep(random.uniform(600, 900)) # 10 a 15 minutosDigite o nome da planilha aqui e aperte ENTER: clientes_janeiro
--------------------------------------------------
Posso enviar os e-mails? (sim/não) sim
--------------------------------------------------
100%|████████████████████████| 150/150 [1:45:30<00:00, 42.20s/it]
E-mail enviado para [email protected]
E-mail enviado para [email protected]
...
--------------------------------------------------
Tempo de espera de 10 a 15 minutos a cada 30 emails enviados...
--------------------------------------------------
- Nunca compartilhe planilhas com dados de clientes em repositórios públicos
- Adicione
*.xlsxao.gitignore - Mantenha o template HTML genérico no repositório
- Certifique-se de ter consentimento dos destinatários (LGPD/GDPR)
- Inclua sempre uma opção de descadastramento
- Respeite as leis de proteção de dados do seu país
- Microsoft 365: Limite de 10.000 destinatários por dia
- Outlook.com: Limite de 300 emails por dia
- Exchange Server: Varia conforme configuração do servidor
- Verifique se o arquivo
.xlsxestá na mesma pasta do script - Digite apenas o nome, sem a extensão
- Instale o Microsoft Outlook
- Configure ao menos uma conta de email
- Reduza a velocidade de envio
- Melhore o conteúdo do email (evite palavras suspeitas)
- Configure SPF, DKIM e DMARC no seu domínio
pandas>=1.5.0
pywin32>=305
tqdm>=4.65.0
Este é um projeto pessoal, mas sugestões são bem-vindas! Para contribuir:
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Adiciona MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Anderson Luiz - Desenvolvedor
⭐ Se este projeto foi útil para você, considere dar uma estrela no repositório!