49 minutes ago
📧 email_samp 1.0.0
E-mail (SMTP) direto do servidor — SA-MP e open.mp, o mesmo binário
Email (SMTP) straight from the server — SA-MP and open.mp, the same binary
Download · GitHub · Documentação
E-mail (SMTP) direto do servidor — SA-MP e open.mp, o mesmo binário
Email (SMTP) straight from the server — SA-MP and open.mp, the same binary
Download · GitHub · Documentação
Quote:🇧🇷 Código de registro, recuperação de senha, aviso para a staff: sempre deu para fazer, mas nunca de dentro do servidor. Era requisição HTTP para um script PHP, PHPMailer do outro lado, um serviço externo no meio — três coisas para manter no ar só para mandar um e-mail. Este plugin fala SMTP e TLS por conta própria, e o envio cabe em uma linha.
🇬🇧 Registration codes, password resets, staff alerts: always doable, never from inside the server. It meant an HTTP request to a PHP script, PHPMailer on the other end, some external service in between — three moving parts just to send one mail. This plugin speaks SMTP and TLS itself, and sending fits on one line.
Code:
email_setup(); // credenciais do .env, do ambiente ou do smtp.ini
email_send_to("[email protected]", "Bem-vindo", "Sua conta esta pronta.");🇧🇷 Nada trava. Toda native retorna na hora: o e-mail sai em threads separadas e o resultado volta num callback, então relay lento não segura o tick.
🇬🇧 Nothing blocks. Every native returns at once: mail leaves on worker threads and the result comes back in a callback, so a slow relay never holds the tick.
Code:
email_send_to(email, "Bem-vindo", corpo, "OnMailSent", "d", playerid);
Email::OnMailSent(success, playerid)
{
SendClientMessage(playerid, -1, success ? ("E-mail enviado.") : ("Falhou."));
return 1;
}📦 Instalar é copiar um arquivo / Installing is copying one file
🇧🇷 Sem PHPMailer, sem sendmail, sem OpenSSL no sistema: SMTP e TLS estão compilados dentro do binário. Funciona em host compartilhado, onde você não instala nada. E é um arquivo só para os dois servidores:
🇬🇧 No PHPMailer, no sendmail, no system OpenSSL: SMTP and TLS are compiled into the binary. Works on shared hosting, where you install nothing. One file, both servers:
- SA-MP — 🇧🇷 em plugins/, nome no server.cfg / 🇬🇧 in plugins/, name in server.cfg
- open.mp nativo — 🇧🇷 em components/, encontrado sozinho / 🇬🇧 in components/, auto-discovered
- open.mp legacy — 🇧🇷 o mesmo arquivo em plugins/ / 🇬🇧 same file in plugins/
🇧🇷 Dois includes: <email_samp> em snake_case e <email_samp_omp> no estilo Email_SendTo, para quem não quer misturar convenção no gamemode.
🇬🇧 Two includes: <email_samp> in snake_case and <email_samp_omp> in Email_SendTo style.
✉️ O texto do e-mail fica num arquivo / The wording lives in a file
🇧🇷 Quem já mandava e-mail pelo PHP tem o .html pronto — ele serve como está. Ou use um .tpl, que carrega assunto, versão texto e versão HTML juntos:
🇬🇧 If you already sent mail from PHP, your .html works as-is. Or use a .tpl, which carries subject, text and HTML together:
Code:
[subject]
Seu codigo e {codigo}
[text]
Ola {nome}, seu codigo de verificacao e {codigo}.Code:
new msg = email_new();
email_add_to(msg, email);
email_set_template(msg, "mail/registro.tpl");
email_set_var(msg, "nome", nome);
email_set_var(msg, "codigo", "%d", codigo);
email_send(msg);🇧🇷 Editou o arquivo, o próximo e-mail já sai com o texto novo — sem recompilar, sem reiniciar. E o valor que veio do jogador é escapado sozinho no HTML: nick com <script> chega como texto.
🇬🇧 Edit the file and the next mail uses it — no recompile, no restart. Player-supplied values are escaped automatically in the HTML part.
🔧 E ainda / And also
- 🇧🇷 Anexo e imagem embutida / 🇬🇧 Attachments and inline images — 🇧🇷 arquivo, texto gerado no gamemode, ou imagem que aparece dentro do HTML / 🇬🇧 a file, data built in the gamemode, or an image shown inside the HTML
- 🇧🇷 Ritmo de envio / 🇬🇧 Paced for real providers — 🇧🇷 e-mails por minuto, prioridade e nova tentativa em falha temporária: mailing para a base inteira não atrasa o reset de senha de quem está esperando / 🇬🇧 rate limit, priorities and retries, so a mailing never delays a password reset
- 🇧🇷 Seguro com o que o jogador digita / 🇬🇧 Safe with player input — 🇧🇷 quebra de linha em cabeçalho é recusada (senão um nick vira um Bcc: escondido), endereço é validado de verdade e anexo não sai da pasta do servidor / 🇬🇧 header injection refused, addresses parsed, attachments sandboxed
- 🇧🇷 TLS obrigatório / 🇬🇧 TLS required — 🇧🇷 se o STARTTLS não subir, o envio falha em vez de mandar a senha em texto claro / 🇬🇧 if STARTTLS fails, the send fails instead of leaking the password
- 🇧🇷 Acentuação intacta / 🇬🇧 Accents survive — 🇧🇷 nick acentuado chega certo, não como Jo?o / 🇬🇧 no more Jo?o
- 🇧🇷 Modo de teste / 🇬🇧 Dry-run — 🇧🇷 escreve cada mensagem como .eml em logs/dry-run/ e não conecta: dá para mexer no gamemode sem gastar cota nem mandar e-mail para jogador de verdade / 🇬🇧 writes each message as an .eml and sends nothing
🇧🇷 Credenciais ficam fora do código: um .env (via env_samp), variáveis de ambiente, uma URL SMTP ou um smtp.ini — as mesmas chaves em qualquer fonte, e nenhuma delas precisa ir para o repositório.
🇬🇧 Credentials stay out of the source: a .env, the process environment, an SMTP URL or an smtp.ini — the same keys from any source, and none of them has to reach your repo.
📚 Links
- Documentação — 🇧🇷 instalação, configuração, envio, templates, erros e segurança / 🇬🇧 installation, configuration, sending, templates, errors, security
- Referência da API — 🇧🇷 as 34 natives, uma a uma / 🇬🇧 all 34 natives
- Exemplos — 🇧🇷 comece pelo 00_ready_to_send: um gamemode pronto, com o arquivo do e-mail junto / 🇬🇧 start with 00_ready_to_send
🇧🇷 Projeto independente, mantido por uma pessoa. Não é afiliado, endossado nem patrocinado pelo SA-MP, pelo open.mp ou por qualquer provedor de e-mail citado.
🇬🇧 Independent project, maintained by one person. Not affiliated with or endorsed by SA-MP, open.mp or any email provider mentioned.
🇧🇷 Dúvidas, sugestões e relatos de bug são bem-vindos — aqui no tópico ou nas issues.
🇬🇧 Questions, suggestions and bug reports are welcome — here or on GitHub issues.
⭐ github.com/NullSablex/email-samp
🇬🇧 Questions, suggestions and bug reports are welcome — here or on GitHub issues.
⭐ github.com/NullSablex/email-samp
