81 lines
1.7 KiB
PHP
81 lines
1.7 KiB
PHP
|
<?php
|
||
|
|
||
|
require_once ('vn/web/json-request.php');
|
||
|
require_once ('libphp-phpmailer/PHPMailerAutoload.php');
|
||
|
|
||
|
use Vn\Lib;
|
||
|
|
||
|
class Contact extends Vn\Web\JsonRequest
|
||
|
{
|
||
|
function run ()
|
||
|
{
|
||
|
// Verifies that sent data is valid
|
||
|
|
||
|
$params = [
|
||
|
'name'
|
||
|
,'pc'
|
||
|
,'phone'
|
||
|
,'email'
|
||
|
,'message'
|
||
|
,'captcha'
|
||
|
];
|
||
|
|
||
|
if (!$this->checkParams ($_REQUEST, $params)
|
||
|
|| !isset ($_SESSION['captcha']))
|
||
|
throw new Lib\UserException (s('Missing parameters'), 'missingParams');
|
||
|
|
||
|
// 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
|
||
|
|
||
|
$db = $this->getSysConn ();
|
||
|
|
||
|
// TODO: Change form fields
|
||
|
//$db->queryFromFile (__DIR__.'/contact', $_REQUEST);
|
||
|
//$customerId = $db->getValue ('SELECT @id');
|
||
|
|
||
|
$conf = $db->getRow (
|
||
|
'SELECT m.host, m.port, m.secure, m.sender, m.user, m.password, c.recipient
|
||
|
FROM mail_config 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;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
?>
|