09/05/2023 11:20
Perdão pela demora.
Estou fora do SA:MP, mas como é algo relativamente simples e não preciso jogar para testar vou te fazer o meio de campo e se tiver alguma dúvida pode ir perguntando que eu ou outro membro vai ajudar.
Vou anexar os arquivos do PHPMailer para fazer funcionar este sistema e abaixo vou colocar o script pawn e o PHP.
O sistema funciona, PORÉM, não está pronto para uso. Deve adicionar onde salvar o token e onde carregar para fazer a verificação ingame, bem como como o jogador deve fazer para digitar o token.
Este código é apenas o pontapé inicial para fazer esse sistema, mas a parte que você possui dificuldade está pronta.
Pawn:
(feito em forma de gamemode, mas você vai precisar apenas da função EnviarTokenRecuperacao e a definição PHP_URL)
PHP:
(Altere o e-mail e senha do outlook ou outro serviço de e-mail)
PHPMailer: em anexo
Como fazer:
Espero ter ajudado!
Estou fora do SA:MP, mas como é algo relativamente simples e não preciso jogar para testar vou te fazer o meio de campo e se tiver alguma dúvida pode ir perguntando que eu ou outro membro vai ajudar.
Vou anexar os arquivos do PHPMailer para fazer funcionar este sistema e abaixo vou colocar o script pawn e o PHP.
O sistema funciona, PORÉM, não está pronto para uso. Deve adicionar onde salvar o token e onde carregar para fazer a verificação ingame, bem como como o jogador deve fazer para digitar o token.
Este código é apenas o pontapé inicial para fazer esse sistema, mas a parte que você possui dificuldade está pronta.
Pawn:
(feito em forma de gamemode, mas você vai precisar apenas da função EnviarTokenRecuperacao e a definição PHP_URL)
Código:
#include <a_samp>
#include <zcmd>
#define PHP_URL "localhost/sendmail/send-mail.php?Email=%s&Token=%i"
main()
{
}
CMD:recuperarconta(playerid, params[])
{
EnviarTokenRecuperacao(playerid, "seuemail@dominio.com.br", random(999999) + 100000);
return 1;
}
stock EnviarTokenRecuperacao(playerid, email[], token)
{
if(!IsPlayerConnected(playerid))
return 0;
static url[200];
format(url, sizeof url, PHP_URL, email, token);
HTTP(playerid, HTTP_GET, url, "", "OnPlayerRequestToken");
return 1;
}
forward OnPlayerRequestToken(index, response_code, data[]);
public OnPlayerRequestToken(index, response_code, data[])
{
if (response_code == 200)
{
SendClientMessage(index, -1, "Em breve você receberá um e-mail contendo um token de recuperação da conta.");
// restante do código
}
else
SendClientMessage(index, -1, "Houve uma instabilidade em nosso servidor e não foi possível enviar o token. Fale com a administração.");
return true;
}
PHP:
(Altere o e-mail e senha do outlook ou outro serviço de e-mail)
Código PHP:
<?php
if(empty($_GET["Email"]) || empty($_GET["Token"]))
die(0);
$Email = $_GET["Email"];
$Token = $_GET["Token"];
require "PHPMailer/PHPMailer.php";
require "PHPMailer/SMTP.php";
require "PHPMailer/Exception.php";
$mail = new \PHPMailer\PHPMailer\PHPMailer();
$mail->isSMTP();
$mail->Host = "smtp.office365.com";
$mail->SMTPAuth = true;
$mail->SMTPSecure = \PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_STARTTLS;
$mail->setLanguage("pt");
$mail->CharSet = PHPMailer\PHPMailer\PHPMailer::CHARSET_UTF8;
$mail->Username = "email@hotmail.com.br"; // E-mail outlook <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$mail->Password = "pdw123"; // Senha da conta <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$mail->Port = 587;
$mail->setFrom("email@hotmail.com.br"); // E-mail outlook <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$mail->addAddress($Email);
$mail->isHTML(true);
$mail->Subject = "E-mail de recuperação de conta - SA:MP";
$mail->Body = "Você solicitou um token de recuperação!<br>Token: <b>{$Token}</b>";
if(!$mail->send())
echo 0;
else
echo 1;
PHPMailer: em anexo
Como fazer:
- Descompacte a pasta PHPMailer e jogue a pasta dentro do servidor PHP.
- Copie o conteúdo do arquivo PHP acima e cole em um arquivo de texto e salve como "send-mail.php".
- Para testar se não há erro por parte do servidor, basta jogar o link do arquivo "send-mail.php" no navegador: www.servidor.com/send-mail.php?Email=email_destino@dominio.com.br&Token=12345
- Se funcionar, basta ajustar o link da definição PHP_URL no script pawn.
Espero ter ajudado!
SA:MP Dev Tools
Faça mais, ganhe mais e poupe tempo!
Viper Anti-Cheat
Torne seu servidor mais seguro!
________________________________________
Soluções personalizadas para SA:MP
Discord: .eduardoac | Eduardo AC#3140
Faça mais, ganhe mais e poupe tempo!
Viper Anti-Cheat
Torne seu servidor mais seguro!
________________________________________
Soluções personalizadas para SA:MP
Discord: .eduardoac | Eduardo AC#3140