forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
3.3 KiB
81 lines
3.3 KiB
<?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ção foi feita para o envio de Recuperaçã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ção de senha!');"; |
|
} else { |
|
$jsStartup[] = "alert('Não foi possível enviar o e-mail de recuperaçã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ÇÃO DE SENHA"; |
|
$mail->Body = "<b>Para a sua segurança não forneça o seus dados e nã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çã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ÇÃO DE SENHA!</b></span>"; |
|
$mail->AltBody = "<b>Para a sua segurança não forneça o seus dados e nã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çã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); |
|
} |
|
|