【问题标题】:phpmailer has issues with long messagesphpmailer 存在长消息问题
【发布时间】:2016-11-20 20:28:56
【问题描述】:

我有一个 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);
            ?>

【问题讨论】:

  • 你试过 utf-8 成为标准吗?
  • 是的,我以前的版本是 UTF-8,但效果不佳...
  • 你不会在 PHPMailer 中设置这样的标题 - 阅读文档!查看您收到的消息的来源,您会发现它已经为您完成了。
  • 您的代码基于一个过时的示例,因此请确保您使用的是the latest version of PHPMailer

标签: php forms gmail phpmailer


【解决方案1】:

好吧,希伯来语肯定在 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';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 2017-04-09
    相关资源
    最近更新 更多