Skip to content

Sistema web seguro e responsivo para envio de emails utilizando PHPMailer. Interface moderna com validações avançadas, suporte a anexos e proteções contra spam. Ideal para produção com configurações seguras de SMTP.

License

Notifications You must be signed in to change notification settings

NinoMiquelino/secure-php-mailer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🙋‍♂️ Autor


Onivaldo Miquelino
@ninomiquelino

🔐 Secure PHP Mailer

PHP PHPMailer JavaScript Tailwind CSS License MIT Status Stable Version 1.0.0 GitHub stars GitHub forks GitHub issues

Sistema web moderno e seguro para envio de emails através de SMTP com PHPMailer. Interface responsiva construída com Tailwind CSS e backend robusto com proteções avançadas de segurança.

✨ Funcionalidades

🎨 Interface Moderna

  • Design Responsivo - Optimizado para mobile e desktop
  • Tailwind CSS - Interface moderna e profissional
  • UX Melhorada - Feedback visual em tempo real
  • Upload de Anexos - Suporte a múltiplos tipos de arquivo

🔒 Segurança Avançada

  • Rate Limiting - Proteção contra spam e abuso
  • Validação de Entrada - XSS e SQL Injection protection
  • Sanitização de Dados - Filtragem completa de inputs
  • Configuração Segura - Credenciais SMTP protegidas
  • Validação de Arquivos - Tipo e tamanho limitados

📧 Recursos de Email

  • Múltiplos Destinatários - Suporte a lista de emails
  • HTML e Texto - Conteúdo em formato dual
  • Anexos - Suporte a arquivos até 5MB
  • Template Profissional - Layout HTML responsivo
  • Reply-To Configurável - Respostas direcionadas

⚙️ Configuração Flexível

  • Multi-provedor SMTP - Gmail, Outlook, Yahoo, etc.
  • Variáveis de Ambiente - Configuração segura
  • Tratamento de Erros - Mensagens amigáveis ao usuário

🚀 Começando Rápido

Pré-requisitos

  • PHP 8.0 ou superior
  • Composer (para instalar dependências)
  • Servidor SMTP (Gmail, SendGrid, etc.)

Instalação Rápida

  1. Clone o repositório
git clone https://github.com/NinoMiquelino/secure-php-mailer.git
cd secure-php-mailer
  1. Instale as dependências
composer require phpmailer/phpmailer
  1. Configure o SMTP

Variáveis de Ambiente (Recomendado)

Crie um arquivo .env (não versionado):

SMTP_HOST=smtp.gmail.com
SMTP_USER=seuemail@gmail.com
SMTP_PASS=sua-app-password
SMTP_PORT=587
SMTP_ENCRYPTION=tls
ReplyTo_EMAIL=seuemail@gmail.com
SYS_NAME=Seu Sistema
  1. Acesse o sistema
# Abra no navegador:
http://localhost/secure-php-mailer

🛠️ Configuração Detalhada

Configuração SMTP para Gmail

  1. Ative a verificação em duas etapas
    · Acesse https://myaccount.google.com/security
    · Ative "Verificação em duas etapas"
  2. Gere uma Senha de App
    · Acesse https://myaccount.google.com/apppasswords
    · Selecione "Email" e gere uma senha
    · Use a senha de 16 caracteres no código
  3. Configuração no código
$mail->Host = 'smtp.gmail.com';
$mail->Username = 'seuemail@gmail.com';
$mail->Password = 'abcd efgh ijkl mnop'; // App Password
$mail->Port = 587;
$mail->SMTPSecure = 'tls';

Configuração para Outros Provedores

Outlook/Office 365:

$mail->Host = 'smtp.office365.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';

SendGrid:

$mail->Host = 'smtp.sendgrid.net';
$mail->Username = 'apikey';
$mail->Password = 'SG.sua_chave_api';

📁 Estrutura do Projeto

secure-php-mailer/
│
├── index.html                 # Interface principal
├── process.php               # Backend de processamento
├── cache/                    # Cache de rate limiting
├── README.md
└── LICENSE            # Arquivo de Licença  da aplicação

🔧 Configuração de Segurança

Configurações de Segurança Implementadas

· Rate Limiting: 10 requisições por minuto por IP
· Validação de Arquivos: Tipos e tamanhos limitados
· Sanitização: Todos os inputs são validados e sanitizados
· Headers de Segurança: Proteção XSS, Clickjacking, etc.

🎯 Uso do Sistema

Envio Básico de Email

  1. Preencha o destinatário (múltiplos separados por vírgula)
  2. Adicione um assunto claro
  3. Escreva a mensagem (suporte a formatação)
  4. Opcional: Anexe um arquivo (até 5MB)
  5. Clique em "Enviar Email"

Recursos Avançados

Múltiplos Destinatários:

usuario1@email.com, usuario2@email.com, usuario3@email.com

Template HTML Automático:

<!-- O sistema aplica automaticamente um template profissional -->

Reply-To Configurável:

// As respostas podem ser direcionadas para outro email
$mail->addReplyTo('suporte@empresa.com', 'Equipe de Suporte');

🐛 Solução de Problemas

Erros Comuns e Soluções

"SMTP Error: Could not connect to SMTP host"

· Verifique as credenciais SMTP
· Confirme a porta e encryption
· Gere App Password para Gmail
· Verifique firewall do servidor

"Unexpected end of JSON input"

· PHP está retornando erro antes do JSON
· Verifique syntax errors no código
· Confirme que PHPMailer está instalado

Email não chega no destinatário

· Verifique pasta de spam
· Confirme limites do provedor SMTP

Anexo não é enviado

· Tamanho máximo: 5MB
· Tipos permitidos: PDF, DOC, DOCX, JPG, PNG, TXT
· Verifique permissões de upload

Modo Debug

Ative o debug temporariamente em process.php:

$mail->SMTPDebug = 2; // Nível de debug
$mail->Debugoutput = 'error_log'; // Saída do debug

🔍 Recursos de Segurança

Rate Limiting

O sistema impede spam através de limite de requisições:

· 10 requisições por minuto por IP
· Dados armazenados em cache temporário
· Proteção contra ataques de força bruta

Validação de Entrada

· Emails: Validação com filter_var()
· Arquivos: Verificação de tipo e tamanho
· Texto: Sanitização contra XSS
· CSRF Protection: Headers de segurança

Padrões de Código

· Siga PSR-12 para PHP
· Use ESLint para JavaScript

🛡️ Privacidade e Segurança

· Não armazenamos emails ou conteúdos enviados
· Credenciais SMTP são protegidas por variáveis de ambiente
· Comunicação com servidor SMTP usa encryption


🤝 Contribuições

Contribuições são sempre bem-vindas!
Sinta-se à vontade para abrir uma issue com sugestões ou enviar um pull request com melhorias.


💬 Contato

📧 Entre em contato pelo LinkedIn
💻 Desenvolvido por Onivaldo Miquelino


About

Sistema web seguro e responsivo para envio de emails utilizando PHPMailer. Interface moderna com validações avançadas, suporte a anexos e proteções contra spam. Ideal para produção com configurações seguras de SMTP.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published