<?php /** * VFM - veno file manager: ajax/sendpwd.php * * Send link to reset password * * PHP version >= 5.3 * * @category PHP * @package VenoFileManager * @author Nicola Franchini <support@veno.it> * @copyright 2013 Nicola Franchini * @license Exclusively sold on CodeCanyon * @link http://filemanager.veno.it/ */ if (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest') ) { exit; } error_reporting(E_ALL); ini_set('display_errors', 1); require_once dirname(__DIR__).'/class/class.gatekeeper.php'; require_once dirname(__DIR__).'/class/class.setup.php'; require_once dirname(__DIR__).'/class/class.utils.php'; require_once dirname(__DIR__).'/class/class.updater.php'; require_once dirname(__DIR__).'/class/class.resetter.php'; require_once dirname(__DIR__).'/class/class.template.php'; $gateKeeper = new GateKeeper(); $setUp = new SetUp(); $utils = new Utils(); $updater = new Updater(); $resetter = new Resetter(); $lang = $setUp->lang; $dest = filter_input(INPUT_POST, "user_email", FILTER_VALIDATE_EMAIL); $pulito = filter_input(INPUT_POST, 'cleanurl', FILTER_SANITIZE_SPECIAL_CHARS); $setfrom = $setUp->getConfig('email_from'); if ($setfrom == null) { echo '<div class="alert alert-danger">'.$setUp->getString('setup_email_application').'</div>'; exit(); } if (!$dest) { echo '<div class="alert alert-warning">'.$setUp->getString('fill_all_fields').'</div>'; exit(); } if (!Utils::checkCaptcha('show_captcha_reset')) { echo '<div class="alert alert-danger">'.$setUp->getString('wrong_captcha').'</div>'; exit(); } if (!$updater->findUser($dest, true)) { echo '<div class="alert alert-danger">'.$setUp->getString('email_not_exist').'</div>'; exit(); } $token = $resetter->setToken($dest); if (!$token) { echo '<div class="alert alert-danger">Error: token not set</div>'; exit(); } use PHPMailer\PHPMailer\PHPMailer; require_once dirname(__DIR__).'/assets/mail/vendor/autoload.php'; $mail = new PHPMailer(); $mail->CharSet = 'UTF-8'; $mail->setLanguage($lang); if ($setUp->getConfig('smtp_enable') == true) { $mail->isSMTP(); $mail->SMTPDebug = ($setUp->getConfig('debug_smtp') ? 2 : 0); $mail->Debugoutput = 'html'; $smtp_auth = $setUp->getConfig('smtp_auth'); $mail->Host = $setUp->getConfig('smtp_server'); $mail->Port = (int)$setUp->getConfig('port'); $mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true, ) ); if ($setUp->getConfig('secure_conn') !== "none") { $mail->SMTPSecure = $setUp->getConfig('secure_conn'); } $mail->SMTPAuth = $smtp_auth; if ($smtp_auth == true) { $mail->Username = $setUp->getConfig('email_login'); $mail->Password = $setUp->getConfig('email_pass'); } } $appname = html_entity_decode($setUp->getConfig('appname')); $mail->setFrom($setfrom, $appname); $mail->addAddress($dest, '<'.$dest.'>'); $mail->Subject = $appname.": ".$setUp->getString('reset_password'); $altmessage = $setUp->getString('someone_requested_pwd_reset_1').": ".$token['name']."/n" .$setUp->getString('someone_requested_pwd_reset_2')."\n" .$setUp->getString('someone_requested_pwd_reset_3')."\n" .$pulito.$token['tok']; $email_logo = $setUp->getConfig('email_logo', false) ? '../_content/uploads/'.$setUp->getConfig('email_logo') : '../images/px.png'; $mail->AddEmbeddedImage($email_logo, 'logoimg'); // Retrieve the email template required // $message = file_get_contents('../_content/mail-template/template-reset-password.html'); $message = file_get_contents(Template::getMailTemplate('template-reset-password')); // Replace the % with the actual information $message = str_replace('%app_url%', $pulito, $message); $message = str_replace('%app_name%', $appname, $message); $message = str_replace( '%translate_someone_requested_pwd_reset_1%', $setUp->getString('someone_requested_pwd_reset_1'), $message ); $message = str_replace( '%translate_someone_requested_pwd_reset_2%', $setUp->getString('someone_requested_pwd_reset_2'), $message ); $message = str_replace( '%translate_someone_requested_pwd_reset_3%', $setUp->getString('someone_requested_pwd_reset_3'), $message ); $message = str_replace('%translate_username%', $setUp->getString('username'), $message); $message = str_replace('%username%', $token['name'], $message); $message = str_replace('%translate_reset_password%', $setUp->getString('reset_password'), $message); $message = str_replace('%tok%', $pulito.$token['tok'], $message); $mail->msgHTML($message); $mail->AltBody = $altmessage; if (!$mail->send()) { echo '<div class="alert alert-danger">Mailer Error: '.$mail->ErrorInfo.'</div>'; } else { echo '<div class="alert alert-success">'.$setUp->getString('message_sent').': '.$dest.'</div>'; }