2017-11-06 20:02:18 +00:00
|
|
|
<?php
|
|
|
|
use PHPMailer\PHPMailer\PHPMailer;
|
|
|
|
use PHPMailer\PHPMailer\Exception;
|
|
|
|
|
2018-07-31 21:31:04 +00:00
|
|
|
require 'PHPMailer/src/Exception.php';
|
|
|
|
require 'PHPMailer/src/PHPMailer.php';
|
|
|
|
require 'PHPMailer/src/SMTP.php';
|
2017-11-06 20:02:18 +00:00
|
|
|
|
|
|
|
include_once "info.php";
|
|
|
|
|
|
|
|
if ($_SERVER["REQUEST_METHOD"] == 'POST') {
|
|
|
|
if (isset($_POST["captcha"]) && !empty($_POST["captcha"])) {
|
|
|
|
|
|
|
|
$captcha = $_POST["captcha"];
|
|
|
|
$url = "https://www.google.com/recaptcha/api/siteverify";
|
|
|
|
$data = array(
|
|
|
|
"secret" => $recaptchaSecret,
|
|
|
|
"response" => $captcha,
|
|
|
|
"remoteip" => $_SERVER["REMOTE_ADDR"]
|
|
|
|
);
|
|
|
|
$options = array(
|
|
|
|
"http" => array(
|
|
|
|
"header" => "Content-Type: application/x-www-form-urlencoded\r\n",
|
|
|
|
"method" => "POST",
|
|
|
|
"content" => http_build_query($data)
|
|
|
|
)
|
|
|
|
);
|
|
|
|
$context = stream_context_create($options);
|
|
|
|
$result = file_get_contents($url, false, $context);
|
|
|
|
if ($result === false) {
|
|
|
|
http_response_code(500);
|
|
|
|
die("Error verifying reCAPTCHA");
|
|
|
|
}
|
|
|
|
$result = json_decode($result, true);
|
|
|
|
|
|
|
|
if ($result["success"] == false) {
|
|
|
|
http_response_code(400);
|
|
|
|
die("Could not verify reCAPTCHA");
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!isset($_POST["name"])) {
|
|
|
|
http_response_code(400);
|
|
|
|
die("A name is required");
|
|
|
|
}
|
|
|
|
$name = trim($_POST["name"]);
|
|
|
|
if ($name == '') {
|
|
|
|
http_response_code(400);
|
|
|
|
die("The name cannot be empty");
|
|
|
|
} else if (strtolower($name) == 'anon' || strToLower($name) == 'anonymous') {
|
|
|
|
http_response_code(400);
|
|
|
|
die("Enter a real name");
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!isset($_POST["email"])) {
|
|
|
|
http_response_code(400);
|
|
|
|
die("An email address is required");
|
|
|
|
}
|
|
|
|
$email = trim($_POST["email"]);
|
|
|
|
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
|
|
|
http_response_code(400);
|
|
|
|
die("Invalid email address");
|
|
|
|
}
|
|
|
|
|
|
|
|
$subject = "Message from contact form";
|
|
|
|
if (isset($_POST["subject"]) && trim($_POST["subject"]) != "") {
|
|
|
|
$subject = $subject . ": " . $_POST["subject"];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!isset($_POST["message"])) {
|
|
|
|
http_response_code(400);
|
|
|
|
die("A message is required");
|
|
|
|
}
|
|
|
|
$message = trim($_POST["message"]);
|
|
|
|
if ($message == '') {
|
|
|
|
http_response_code(400);
|
|
|
|
die("A message is required");
|
|
|
|
}
|
|
|
|
$message = $name . ' -- <' . $email . '><hr>' . $message;
|
|
|
|
|
|
|
|
$mail = new PHPMailer(true); // true enables exceptions
|
|
|
|
try {
|
|
|
|
$mail->isSMTP();
|
|
|
|
//$mail->SMTPDebug = 3;
|
|
|
|
$mail->Host = $mailHost;
|
|
|
|
$mail->SMTPAuth = true;
|
|
|
|
$mail->Username = $mailUser;
|
|
|
|
$mail->Password = $mailPass;
|
|
|
|
$mail->SMTPSecure = 'ssl';
|
|
|
|
$mail->Port = $mailPort;
|
|
|
|
|
|
|
|
$mail->setFrom($mailFrom, 'Website Contact Form');
|
|
|
|
$mail->addAddress($mailDest);
|
|
|
|
$mail->addReplyTo($email);
|
|
|
|
|
|
|
|
$mail->isHTML(true);
|
|
|
|
$mail->Subject = $subject;
|
|
|
|
$mail->Body = $message;
|
|
|
|
|
|
|
|
$mail->Send();
|
|
|
|
} catch (Exception $e) {
|
|
|
|
http_response_code(500);
|
|
|
|
echo 'Message could not be sent.';
|
|
|
|
echo 'Mailer Error: ' . $mail->ErrorInfo;
|
|
|
|
}
|
|
|
|
} else { // no recaptcha
|
|
|
|
http_response_code(400);
|
|
|
|
echo "Bad reCAPTCHA";
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
http_response_code(404);
|
|
|
|
}
|
|
|
|
?>
|