<?php require_once('libphp-phpmailer/PHPMailerAutoload.php'); use Vn\Lib; class Contact extends Vn\Web\JsonRequest { const PARAMS = [ 'name' ,'pc' ,'phone' ,'email' ,'message' ,'captcha' ]; function run($db) { // Checks the antispam code $lastCaptcha = $_SESSION['captcha']; unset($_SESSION['captcha']); if ($_REQUEST['captcha'] !== $lastCaptcha) throw new Lib\UserException (s('Wrong captcha'), 'wrongCaptcha'); // Sends the mail // TODO: Change form fields //$db->queryFromFile(__DIR__.'/contact', $_REQUEST); //$customerId = $db->getValue('SELECT @id'); $conf = $db->getObject( 'SELECT m.host, m.port, m.secure, m.sender, m.user, m.password, c.recipient FROM mailConfig m JOIN contact c' ); $mail = new PHPMailer(); $mail->isSMTP(); $mail->Host = $conf->host; if (!empty($conf->user)) { $mail->SMTPAuth = TRUE; $mail->Username = $conf->user; $mail->Password = base64_decode($conf->password); } else $mail->SMTPAuth = FALSE; if ($conf->secure) { $mail->SMTPSecure = 'ssl'; $mail->Port = 465; } $mail->setFrom($conf->sender, 'Web'); $mail->addAddress($conf->recipient); $mail->isHTML(TRUE); $mail->Subject = s('New customer request'); $mail->Body = '<pre>'. print_r($_REQUEST, TRUE) .'</pre>'; if (!$mail->send()) throw new Exception ($mail->ErrorInfo); return TRUE; } }