Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $formConfigFile = file_get_contents("rd-mailform.config.json");
- $formConfig = json_decode($formConfigFile, true);
- date_default_timezone_set('Etc/UTC');
- try {
- require './phpmailer/PHPMailerAutoload.php';
- $recipients = $formConfig['recipientEmail'];
- preg_match_all("/([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)/", $recipients, $addresses, PREG_OFFSET_CAPTURE);
- if (!count($addresses[0])) {
- die('MF001');
- }
- function getRemoteIPAddress() {
- if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
- return $_SERVER['HTTP_CLIENT_IP'];
- } else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
- return $_SERVER['HTTP_X_FORWARDED_FOR'];
- }
- return $_SERVER['REMOTE_ADDR'];
- }
- if (preg_match('/^(127\.|192\.168\.)/', getRemoteIPAddress())) {
- die('MF002');
- }
- $template = file_get_contents('rd-mailform.tpl');
- if (isset($_POST['form-type'])) {
- switch ($_POST['form-type']){
- case 'contact':
- $subject = 'Un Test à été réalisé';
- break;
- case 'subscribe':
- $subject = 'Subscribe request';
- break;
- case 'order':
- $subject = 'Order request';
- break;
- default:
- $subject = 'Un Test à été réalisé';
- break;
- }
- }else{
- die('MF004');
- }
- if (isset($_POST['email'])) {
- $template = str_replace(
- array("<!-- #{FromState} -->", "<!-- #{FromEmail} -->"),
- array("Email:", $_POST['email']),
- $template);
- }
- if (isset($_POST['phone'])) {
- $template = str_replace(
- array("<!-- #{MessageState} -->", "<!-- #{MessageDescription} -->"),
- array("Phone:", $_POST['phone']),
- $template);
- }
- if (isset($_POST['proprietaire'])) {
- $template = str_replace(
- array("<!-- #{InfoState} -->", "<!-- #{InfoDescription} -->"),
- array("proprietaire:", $_POST['proprietaire']),
- $template);
- }
- if (isset($_POST['commune'])) {
- $template = str_replace(
- array("<!-- #{CommuneState} -->", "<!-- #{CommuneDescription} -->"),
- array("Commune:", $_POST['commune']),
- $template);
- }
- if (isset($_POST['chauffage'])) {
- $template = str_replace(
- array("<!-- #{TypeChauffageState} -->", "<!-- #{TypeChauffageDescription} -->"),
- array("Chauffage:", $_POST['chauffage']),
- $template);
- }
- if (isset($_POST['situation'])) {
- $template = str_replace(
- array("<!-- #{SituationState} -->", "<!-- #{SituationDescription} -->"),
- array("Situation:", $_POST['situation']),
- $template);
- }
- if (isset($_POST['last-name'])) {
- $template = str_replace(
- array("<!-- #{LastNameState} -->", "<!-- #{LastNameDescription} -->"),
- array("Prenom:", $_POST['last-name']),
- $template);
- }
- if (isset($_POST['name'])) {
- $template = str_replace(
- array("<!-- #{NameState} -->", "<!-- #{NameDescription} -->"),
- array("Nom:", $_POST['name']),
- $template);
- }
- if (isset($_POST['address'])) {
- $template = str_replace(
- array("<!-- #{AddressState} -->", "<!-- #{AddressDescription} -->"),
- array("Code Postal:", $_POST['address']),
- $template);
- }
- preg_match("/(<!-- #{BeginInfo} -->)(.|\n)+(<!-- #{EndInfo} -->)/", $template, $tmp, PREG_OFFSET_CAPTURE);
- foreach ($_POST as $key => $value) {
- if ($key != "counter" && $key != "email" && $key != "proprietaire" && $key != "commune" && $key != "address" && $key != "name" && $key != "situation" && $key != "phone" && $key != "chauffage" && $key != "last-name" && $key != "form-type" && $key != "g-recaptcha-response" && !empty($value)){
- $info = str_replace(
- array("<!-- #{BeginInfo} -->", "<!-- #{InfoState} -->", "<!-- #{InfoDescription} -->"),
- array("", ucfirst($key) . ':', $value),
- $tmp[0][0]);
- $template = str_replace("<!-- #{EndInfo} -->", $info, $template);
- }
- }
- $template = str_replace(
- array("<!-- #{Subject} -->", "<!-- #{SiteName} -->"),
- array($subject, $_SERVER['SERVER_NAME']),
- $template);
- $mail = new PHPMailer();
- if ($formConfig['useSmtp']) {
- //Tell PHPMailer to use SMTP
- $mail->isSMTP();
- //Enable SMTP debugging
- // 0 = off (for production use)
- // 1 = client messages
- // 2 = client and server messages
- $mail->SMTPDebug = 0;
- $mail->Debugoutput = 'html';
- // Set the hostname of the mail server
- $mail->Host = $formConfig['host'];
- // Set the SMTP port number - likely to be 25, 465 or 587
- $mail->Port = $formConfig['port'];
- // Whether to use SMTP authentication
- $mail->SMTPAuth = true;
- $mail->SMTPSecure = "ssl";
- // Username to use for SMTP authentication
- $mail->Username = $formConfig['username'];
- // Password to use for SMTP authentication
- $mail->Password = $formConfig['password'];
- }
- $mail->From = $addresses[0][0][0];
- # Attach file
- if (isset($_FILES['file']) &&
- $_FILES['file']['error'] == UPLOAD_ERR_OK) {
- $mail->AddAttachment($_FILES['file']['tmp_name'],
- $_FILES['file']['name']);
- }
- if (isset($_POST['email'])){
- $mail->FromName = $_POST['email'];
- }else{
- $mail->FromName = "Site Visitor";
- }
- foreach ($addresses[0] as $key => $value) {
- $mail->addAddress($value[0]);
- }
- $mail->SetFrom($_POST['email']);
- $mail->CharSet = 'utf-8';
- $mail->Subject = $subject;
- $mail->MsgHTML($template);
- $mail->send();
- die('MF000');
- } catch (phpmailerException $e) {
- die('MF254');
- } catch (Exception $e) {
- die('MF255');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement