[Include] SAMPMailJS [NodeJS]
#1

SAMPMailJS й uma include que envia diretamente emails de uma conta gmail, eliminando assim a possibilidade de os mails irem parar а caixa de SPAM. Suporta HTML. Muito ъtil para criar, por exemplo, recuperadores de password, confirmadores de email, enviar avisos por email aos administradores, etc.

A include usa um script em NodeJS, mas nгo й preciso ter conhecimento nenhum em Javascript para conseguir pфr isto a funcionar.


TUTORIAIS

Como instalar NodeJS [Windows] [Linux]
Como obter credenciais do GMAIL
GitHub Wiki - Documentaзгo
Criar sistema de confirmaзгo de emails (inglкs)


COMO CONFIGURAR
  • sampmail.js
Para usar os servidores SMTP do GMAIL, renomeie o ficheiro config.json.gmail para config.json. Edite o ficheiro com todas as configuraзхes desejadas. Para obter o clientId, clientSecret e refreshToken siga o link acima Como obter credenciais do GMAIL.

Para usar outro servidor SMTP, renomeie o ficheiro config.json.custom para config.json. Edite o ficheiro com as suas credenciais. Note que para alguns servidores SMTP sгo necessбrias mais algumas configuraзхes no objeto auth para conseguir utilizar o servidor SMTP, mas os mais bбsicos funcionam com user e password apenas.

machineIp: normalmente o IP externo, se for usar o script apenas no localhost use o IP interno. 127.0.0.1 nгo irб funcionar para outros computadores, mesmo que estejam na mesma rede local.
listenPort: porta em que o script irб correr.
httpPassword: mesma password que configurar na include.
enableDebug: quando true, faz print de algumas informaзхes adicionais na consola.

Se for usar templates, й necessбrio criar a pasta ./templates na raнz onde estб o seu script, e colocar lб os templates, caso contrбrio o script irб crashar quando tentar enviar um email com um template que nгo existe no host.

  • sampmailjs.inc
Editar as constantes:

Код:
#define SAMPMAILJS_URL "127.0.0.1:8080" 
#define SAMPMAILJS_PASSWORD "changeme" 
#define SAMPMAILJS_CONSOLELOG 0
#define SAMPMAILJS_MAXPOSTDATA 2048
SAMPMAILJS_URL - IP:Porta ou Hostname:Porta do host onde estб o script a correr
SAMPMAILJS_PASSWORD - Deve ser igual а password do sampmail.js
SAMPMAILJS_CONSOLELOG - Loga na consola algumas informaзхes que podem ser utйis em debug
SAMPMAILJS_MAXPOSTDATA - Tamanho mбximo da variбvel que envia a informaзгo ao script. Com emails com pouco texto, pode ser usado um nъmero mais baixo. Com emails grandes, й aconselhбvel subir um pouco. Depende de cada um.

  • NodeJS
Para instalar o NODEJS, seguir o tutorial na parte dos tutoriais. Й necessбrio instalar os packages http, nodemailer, url, fs, se ainda nгo os tiver. Para instalar packages para o node, й sу fazer o comando na linha de comandos (Windows e Linux):

PHP код:
npm install http --save
npm install nodemailer 
--save
npm install url 
--save
npm install fs 
--save 
Para correr o scrip, basta navegar atй а pasta onde ele estб e correr na linha de comandos:

PHP код:
node sampmail.js 
  • STRLIB
Й necessбrio fazer download da include strlib.inc. Pode ser encontrada aqui.


USO NORMAL

Код:
SendEmail(name[], to[], subject[], text[])

Exemplo:

SendEmail("SAMPMailJS Teste", "**********@gmail.com", "Teste para o Forum Samp", "<img src='https://i.gyazo.com/cf4f68f94b939c99ccfd0d9f8f51976c.png'><br>Isto e um email de teste!");
Print do Email Recebido


USO COM TEMPLATES

Код:
SendEmail(name[], to[], subject[], text[], bool:isTemplate = false, templateName[] = "default.html")
Um template й um ficheiro .html jб feito que vai ficar presente na pasta do script. Com isto, podem criar templates infinitos e alterar sу certas partes. Com isto hб a vantagem de nгo ser preciso gastar tanta memуria no SAMP para enviar um ficheiro completo em HTML.

Este exemplo vai usar o template default.html, que estб disponнvel tambйm no GitHub. (AQUI)

Neste caso, iriamos gastar muita memуria ao enviar um email completo diretamente pelo SAMP. Com templates, й preciso enviar muito pouco texto para enviar um email complexo.

O template default й este:

Код HTML:
<html>
  <img src='https://i.gyazo.com/cf4f68f94b939c99ccfd0d9f8f51976c.png' height="100" width="300">
  <br><br> Bem vindo ao servidor <b>PLAYERNAME</b>! Obrigado por se registar!
  <br> Informaзхes sobre a sua conta:
  <br> IP: PADDRESS
  <br> Data de Registo: DREG
  <br><br> Divirta-se! Visite-nos em https://github.com/bruxo00/SAMPMailJSnl6...6.10052264</html>
Como podemos ver ali, temos algumas palavras que se destacam das outras, que neste caso sгo PLAYERNAME, PADDRESS e DREG. Nos lugares onde estгo estas palavras, queremos ter por exemplo, o nome do jogador, o IP do jogador e a data de registo. Para fazer isso, no argumento text vamos enviar ao script um formato prй-definido que ele entenda. O formato que o script entende й tag1:valor1#tag2:valor2#tag3:valor3, que significa que vai ao template, procura no template tag1 e vai substituir por valor1, tag2 e substitui por valor2, etc. Neste caso especнfico, temos as tags PLAYERNAME, PADDRESS e DREG. Para as substutuir, fazemos PLAYERNAME:valor#PADDRESS:valor#DREG:valor. Exemplo em Pawn:

Код:
forward EnviarEmailBemVindo(playerid);
public EnviarEmailBemVindo(playerid)
{
	new string[128], pName[MAX_PLAYER_NAME], IP[32];
	
	GetPlayerName(playerid, pName, sizeof pName);
	GetPlayerIp(playerid, IP, sizeof IP);
	
	format(string, sizeof string, "PLAYERNAME:%s#PADDRESS:%s#DREG:07/06/2018", pName, IP);
        SendEmail("SAMP MailJS Teste", "omeuemail@gmail.com", "Bem Vindo ao servidor", string, true);
    
	return 1;
}
Este cуdigo iria dar um email parecido com este:



Print do exemplo da consola do script:



BUGS CONHECIDOS

Nenhum

DOWNLOADS

Repositуrio Github
Link Direto
Reply


Messages In This Thread
SAMPMailJS - Agora suporta Templates [NodeJS] - by bruxo00 - 06.06.2018, 00:34
Re: SAMPMailJS [NodeJS] - by CaioCartaxo - 06.06.2018, 00:37
Re: SAMPMailJS [NodeJS] - by B4dSh33p - 06.06.2018, 05:25
Re: SAMPMailJS [NodeJS] - by bruxo00 - 06.06.2018, 12:06
Re: SAMPMailJS [NodeJS] - by silenthill - 06.06.2018, 12:16
Re: SAMPMailJS [NodeJS] - by Locky_ - 06.06.2018, 13:02
Re: SAMPMailJS [NodeJS] - by bruxo00 - 06.06.2018, 13:27
Re: SAMPMailJS [NodeJS] - by Ermanhaut - 06.06.2018, 14:11
Re: SAMPMailJS [NodeJS] - by JR_Junior - 06.06.2018, 15:55
Re: SAMPMailJS [NodeJS] - by bruxo00 - 06.06.2018, 18:36
Re: SAMPMailJS [NodeJS] - by B4dSh33p - 06.06.2018, 19:27
Re: SAMPMailJS [NodeJS] - by JR_Junior - 07.06.2018, 00:05
Re: SAMPMailJS [NodeJS] - by CaioTJF - 07.06.2018, 01:22
Re: SAMPMailJS [NodeJS] - by WLSF - 07.06.2018, 13:44
Re: SAMPMailJS [NodeJS] - by bruxo00 - 07.06.2018, 17:24
Re: SAMPMailJS [NodeJS] - by Ermanhaut - 07.06.2018, 18:01
Re: SAMPMailJS [NodeJS] - by bruxo00 - 07.06.2018, 18:25
Re: SAMPMailJS [NodeJS] - by Bruno13 - 07.06.2018, 18:41
Re: SAMPMailJS [NodeJS] - by bruxo00 - 07.06.2018, 19:05
Re: SAMPMailJS [NodeJS] - by PilateGR - 07.06.2018, 22:39
Re: SAMPMailJS [NodeJS] - by renatog - 12.06.2018, 13:37
Re: SAMPMailJS [NodeJS] - by bruxo00 - 12.06.2018, 15:09
Re: SAMPMailJS [NodeJS] - by renatog - 12.06.2018, 15:41
Re: SAMPMailJS [NodeJS] - by bruxo00 - 12.06.2018, 19:28
Re: SAMPMailJS [NodeJS] - by GSFBart - 17.06.2018, 12:36
Re: SAMPMailJS [NodeJS] - by bruxo00 - 17.06.2018, 13:17
Re: SAMPMailJS [NodeJS] - by GSFBart - 17.06.2018, 17:20
Re: SAMPMailJS [NodeJS] - by bruxo00 - 17.06.2018, 18:47
Re: SAMPMailJS [NodeJS] - by GSFBart - 17.06.2018, 19:24
Re: SAMPMailJS [NodeJS] - by bruxo00 - 17.06.2018, 19:34
Re: SAMPMailJS [NodeJS] - by GSFBart - 17.06.2018, 20:13
Re: SAMPMailJS [NodeJS] - by bruxo00 - 17.06.2018, 20:29
Re: SAMPMailJS [NodeJS] - by GSFBart - 17.06.2018, 20:53
Re: SAMPMailJS [NodeJS] - by bruxo00 - 17.06.2018, 20:57
Re: SAMPMailJS [NodeJS] - by GSFBart - 17.06.2018, 21:02
Re: SAMPMailJS [NodeJS] - by bruxo00 - 17.06.2018, 21:26
Re: SAMPMailJS [NodeJS] - by GSFBart - 17.06.2018, 21:28
Re: SAMPMailJS [NodeJS] - by bruxo00 - 17.06.2018, 21:34
Re: SAMPMailJS [NodeJS] - by GSFBart - 17.06.2018, 21:50
Re: SAMPMailJS [NodeJS] - by bruxo00 - 17.06.2018, 22:05
Re: SAMPMailJS [NodeJS] - by GSFBart - 17.06.2018, 22:11
Re: SAMPMailJS [NodeJS] - by bruxo00 - 17.06.2018, 22:14
Re: SAMPMailJS [NodeJS] - by bruxo00 - 29.07.2018, 03:10
Re: SAMPMailJS [NodeJS] - by CaioTJF - 11.08.2018, 20:34
Re: SAMPMailJS [NodeJS] - by B4dSh33p - 17.11.2018, 02:51
Re: SAMPMailJS [NodeJS] - by bruxo00 - 18.11.2018, 17:53
Re: SAMPMailJS [NodeJS] - by B4dSh33p - 19.11.2018, 18:22
Re: SAMPMailJS [NodeJS] - by bruxo00 - 19.11.2018, 21:04
Re: SAMPMailJS [NodeJS] - by B4dSh33p - 20.11.2018, 03:46
Re: SAMPMailJS [NodeJS] - by bruxo00 - 20.11.2018, 12:42

Forum Jump:


Users browsing this thread: 1 Guest(s)