Ошибочная электронная почта PHP Enconding

Tengo esta página сеть надел танго, ООН formulario подставляет el que enviar mensajes al gmail del dueño de la página, параграф contactar подставляют él...

http://gonzalezdelavega.es/

Продажа Cada vez que envío un mensaje de prueba el tema del mensaje грешит encodear.

introducir la descripción de la imagen aquí

Este es el código... Никакой se cual puede сер el ошибка

Gracias por vuestra ayuda de antemano

<?php
/*
* Contact Form Class
*/


header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-Type: application/json');

$admin_email = 'jergondelave@gmail.com'; // Your Email
$message_min_length = 5; // Min Message Length


class Contact_Form{
    function __construct($details, $email_admin, $message_min_length){

        $this->name = stripslashes($details['name']);
        $this->email = trim($details['email']);
        //$this->subject = utf8_encode('Página oficial de Jesús González de la Vega'); // Subject 
        $this->subject = "=?ISO-8859-15?Q?".imap_8bit('Página oficial de Jesús González de la Vega')."?=";

        $this->message = stripslashes($details['message']);

        $this->email_admin = $email_admin;
        $this->message_min_length = $message_min_length;

        $this->response_status = 1;
        $this->response_html = '';
    }


    private function validateEmail(){
        $regex = '/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i';

        if($this->email == '') { 
            return false;
        } else {
            $string = preg_replace($regex, '', $this->email);
        }

        return empty($string) ? true : false;
    }


    private function validateFields(){
        // Check name
        if(!$this->name)
        {
            $this->response_html .= '<p>Por favor, introduce tu nombre</p>';
            $this->response_status = 0;
        }

        // Check email
        if(!$this->email)
        {
            $this->response_html .= '<p>Por favor, introduce una dirección de correo</p>';
            $this->response_status = 0;
        }

        // Check valid email
        if($this->email && !$this->validateEmail())
        {
            $this->response_html .= '<p>Por favor, introduce una dirección de correo válida</p>';
            $this->response_status = 0;
        }

        // Check message length
        if(!$this->message || strlen($this->message) < $this->message_min_length)
        {
            $this->response_html .= '<p>Por favor, introduce un mensaje. Debe tener al menos '.$this->message_min_length.' carácteres</p>';
            $this->response_status = 0;
        }
    }


    private function sendEmail(){
        $mail = mail($this->email_admin, $this->subject, $this->message,
             "From: ".$this->name." <".$this->email.">\r\n"
            ."Reply-To: ".$this->email."\r\n"
        ."X-Mailer: PHP/" . phpversion());

        if($mail)
        {
            $this->response_status = 1;
            $this->response_html = '<p>¡Gracias!</p>';
        }
    }


    function sendRequest(){
        $this->validateFields();
        if($this->response_status)
        {
            $this->sendEmail();
        }

        $response = array();
        $response['status'] = $this->response_status;   
        $response['html'] = $this->response_html;

        echo json_encode($response);
    }
}


$contact_form = new Contact_Form($_POST, $admin_email, $message_min_length);
$contact_form->sendRequest();

?>
2
задан 23.01.2017, 07:46
0 ответов
  • Ты мог бы пробовать кодируя subject в utf8.

    $this->subject = "=?UTF-8?B?" .
        base64_encode('Página oficial de Jesús González de la Vega') . "?=";
    
  • Или также ты можешь устанавливать превращение кодирования символов используя iconv_set_encoding (перед тем, как делать любую вещь).

    iconv_set_encoding("internal_encoding", "UTF-8");
    
1
ответ дан 03.12.2019, 17:45