• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Plugin] email_samp for SA-MP and open.mp — SMTP straight from the server
#1
📧 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

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
  Reply


Messages In This Thread
email_samp for SA-MP and open.mp — SMTP straight from the server - by NullSablex - 1 hour ago