phpmailer有长消息的问题

时间:2016-11-20 20:28:57

标签: php forms gmail phpmailer

我有一个PHP表单,我正在使用PHPmailer将它发送到我的gmail帐户。 最近我在希伯来语中遇到了几个问题,我在我的收件箱attached example收到了乱码。 我现在怀疑这是一个长度问题,但我无法找到限制或限制的原因。 **正是希伯来人被骗了!英语保持不变。

<?php
error_reporting(0);
require_once('phpmailer/class.phpmailer.php');
$email      = 'myname@gmail.com';
$subject    = 'New Point Added';
$from       = "autosender@mywebsite";
?>
<!DOCTYPE html>
<html>
<head>

<meta charset="iso-8859-1">
<meta name="viewport" content="width=device-width, initial-scale=1">

        <?php if(isset($_POST['submit'])){
            $msg  = "שם המטייל/ת:<br> ".$_POST['hiker']."<br />";
            $msg .= "מדינה: <br>".$_POST['country']."<br />";
            $msg .= "חודש ושנה:<br> ".$_POST['dob']."<br />";
            $msg .= "סוג:<br> ".$_POST['point']."<br />";
            $msg .= "שם המקום:<br> ".$_POST['place']."<br />";
            $msg .= "תיאור:<br> ".$_POST['description']."<br />";
            $msg .= "מחיר:<br> ".$_POST['price']."<br />";
            $msg .= "איך להגיע:<br> ".$_POST['howtoget']."<br />";
            $msg .= "חוויות אישיות:<br> ".$_POST['personalexp']."<br />";
            $msg .= "מיקום במפה:<br> ".$_POST['latitude']."";
            $msg .= ",".$_POST['longitude']."<br />";
                        $headers = "From: $from" . "\r";
            $headers .= "MIME-Version: 1.0" . "\r";
            $headers .= "Content-type: text/plain; charset=ISO-8859-1";
            $mail = new PHPMailer();
            $mail->From      = $from;
            $mail->FromName  = $from;
            $mail->Subject   = $subject;
            $mail->Body      = $msg;
            $mail->AddAddress($email);
            $mail->IsHTML(true);
            $mail->headers = $headers;
            if(isset($_FILES['file'])){
                $file_to_attach = $_FILES["file"]["tmp_name"];
                $mail->AddAttachment($file_to_attach , $_POST['hiker'].'-'.date('U').'-'.basename($_FILES["file"]["name"]));
            }

            $mail->Send();
            //mail($email,$subject,$msg,$headers);
            ?>

1 个答案:

答案 0 :(得分:0)

希伯来语肯定 无法在ISO-8859-1中使用,而且您正在放置的文字将会被破坏,就像您正在看到的一样。 PHPMailer默认为ISO-8859-1,如果您正在使用其他内容,必须告诉它。 使用UTF-8 ,并确保您传入的数据实际上是UTF-8,而不是其他希伯来语字符集,例如ISO-8859-8。使用UTF-8作为HTML中的字符集,并将PHPMailer设置为使用UTF-8作为其字符集,如下所示:

<meta charset="utf-8">

$mail->CharSet = 'UTF-8';