PHP联系人表单编码问题未如预期

时间:2019-02-27 12:47:17

标签: php email encoding

我已经制作了一个可以使用的PHP联系人表格,但是当邮件发送到目的地时,结果是这样的:消息:Îγαβγ

因此,尽管所有希腊文字符都如上显示一样,英文字符和数字仍可正确发送。

我想编码或标题有问题,但是不管我尝试了什么,我都找不到。

代码如下:

$headers = 'Content-type: plain/txt; charset=UTF-8';

if(isset($_POST['email'])) {

    $email_to = "info@emai.com";
    $email_subject = "Ελληνικά";

    function died($error) {
        // your error code can go here
        echo "Λυπούμαστε, αλλά υπήρχαν μερικά προβλήματα κατά τη διάρκεια της αποστολής του e-mail!";
        echo "Μπορείτε να δείτε τι πήγε στραβά:<br /><br />";
        echo $error."<br /><br />";
        echo "Σας παρακαλούμε, επιστρέψτε πίσω και διορθώστε τα παραπάνω<br /><br />";
        die();
    }


    // validation expected data exists
    if(!isset($_POST['name']) ||
        !isset($_POST['email']) ||
        !isset($_POST['reason']) ||
        !isset($_POST['comments'])) {
        died('Λυπούμαστε, αλλά υπήρχαν μερικά προβλήματα κατά τη διάρκεια της αποστολής του e-mail!');
    }



    $name = $_POST['name']; // required
    $email_from = $_POST['email']; // required
    $reason = $_POST['reason']; // not required
    $comments = $_POST['comments']; // required

    $email_message = "Form details below.\n\n";

    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }

    $email_message .= "Όνομα: ".clean_string($name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Αιτιολογία: ".clean_string($reason)."\n";
    $email_message .= "Μήνυμα: ".clean_string($comments)."\n";

// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'Content-type: plain/txt; charset=UTF-8' . "\r\n".
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);

}

0 个答案:

没有答案