|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
require("phpmailer/class.phpmailer.php");
|
|
|
|
|
|
|
|
|
|
$setActPage = "index.php?action=recovery_password";
|
|
|
|
|
|
|
|
|
|
$email = isset($_POST['email']) ? $_POST['email'] : null;
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
if (isset($_POST['btEnviar'])) {
|
|
|
|
|
|
|
|
|
|
$config = GetEmail($dbcon);
|
|
|
|
|
if (!$config) {
|
|
|
|
|
throw new Exception("Nenhuma configura<EFBFBD><EFBFBD>o foi feita para o envio de Recupera<EFBFBD><EFBFBD>o");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$account = verificaEmail($dbcon, $email);
|
|
|
|
|
$token = md5($account['id'] . $account['matricula'] . time());
|
|
|
|
|
$_SESSION['SSREcoveryPassword'] = ['token' => $token, 'id' => $account['id'], 'login' => $account['apelido']];
|
|
|
|
|
|
|
|
|
|
$link = "http://" . $_SERVER['SERVER_NAME'] . "/index.php?action=change_password&token=" . $token;
|
|
|
|
|
if ($account && enviaEmail($email, $link, $config, $account)) {
|
|
|
|
|
$jsStartup[] = "alert('Foi encaminhado o link para seu e-mail para a recupera<EFBFBD><EFBFBD>o de senha!');";
|
|
|
|
|
} else {
|
|
|
|
|
$jsStartup[] = "alert('N<EFBFBD>o foi poss<EFBFBD>vel enviar o e-mail de recupera<EFBFBD><EFBFBD>o!');";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception $ex) {
|
|
|
|
|
$msg = $ex->getMessage();
|
|
|
|
|
$jsStartup[] = "alert('$msg');";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$smarty->display('recuperarsenha.tpl');
|
|
|
|
|
|
|
|
|
|
function enviaEmail($email, $link, $dados, $account) {
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
$mail = new PHPMailer();
|
|
|
|
|
$mail->IsSMTP();
|
|
|
|
|
$mail->Host = $dados["hosts"];
|
|
|
|
|
$mail->Port = $dados["porta"];
|
|
|
|
|
$mail->SMTPAuth = true;
|
|
|
|
|
|
|
|
|
|
if ($mail->SMTPAuth) {
|
|
|
|
|
$mail->Username = $dados["usuario"];
|
|
|
|
|
$mail->Password = $dados["senha"];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$mail->From = $dados["usuario"];
|
|
|
|
|
$mail->FromName = "RECUPERAR SENHA";
|
|
|
|
|
$mail->AddAddress($email);
|
|
|
|
|
$mail->IsHTML(true);
|
|
|
|
|
$mail->CharSet = 'iso-8859-1';
|
|
|
|
|
$mail->Subject = "RECUPERA<EFBFBD><EFBFBD>O DE SENHA";
|
|
|
|
|
$mail->Body = "<b>Para a sua seguran<EFBFBD>a n<EFBFBD>o forne<EFBFBD>a o seus dados e n<EFBFBD>o replique este e-mail!</b> "
|
|
|
|
|
. "<br><span style='color: blue'><b>Login:</b></span><i>{$account['apelido']}</i> "
|
|
|
|
|
. "<br><span style='color: blue'><b>Link Recupera<EFBFBD><EFBFBD>o:</b></span> <a href='$link'>{$link}</a>"
|
|
|
|
|
. "<br><br><span style='color: red'><b>OBS: COPIE O LINK NO MESMO NAVEGADOR QUE FOI SOLICITADO A ALTERA<EFBFBD><EFBFBD>O DE SENHA!</b></span>";
|
|
|
|
|
$mail->AltBody = "<b>Para a sua seguran<EFBFBD>a n<EFBFBD>o forne<EFBFBD>a o seus dados e n<EFBFBD>o replique este e-mail!</b> <br><span style='color: blue'><b>Login:</b></span><i>{$account['apelido']}</i> <br><span style='color: blue'><b>Link Recupera<EFBFBD><EFBFBD>o:</b></span> <a href='$link'>{$link}</a>";
|
|
|
|
|
$enviado = $mail->Send();
|
|
|
|
|
$mail->ClearAllRecipients();
|
|
|
|
|
$erro = $mail->ErrorInfo;
|
|
|
|
|
return true;
|
|
|
|
|
} catch (Exception $ex) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function verificaEmail($dbcon, $email) {
|
|
|
|
|
$query = "SELECT * FROM pbx_usuarios WHERE email = '$email';";
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
$res = pg_fetch_assoc($result);
|
|
|
|
|
return $res;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetEmail($dbcon) {
|
|
|
|
|
$query = "SELECT hosts, usuario, senha, porta FROM pbx_confmail;";
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
return pg_fetch_assoc($result);
|
|
|
|
|
}
|
|
|
|
|
|