2016-11-20 4 views
0

У меня есть форма в PHP, и я использую PHPmailer для отправки ее в мою учетную запись gmail. Недавно у меня было несколько проблем с сообщениями на иврите, и я получил скремблированные сообщения в своем почтовом ящике attached example. Теперь я подозреваю, что это проблема длины, но я не смог найти ограничение или причину ограничения. ** ИСТОРИЧЕСКИЙ ИБРИТ: Английский язык остается тем же.У phpmailer есть проблемы с длинными сообщениями

<?php 
error_reporting(0); 
require_once('phpmailer/class.phpmailer.php'); 
$email  = '[email protected]'; 
$subject = 'New Point Added'; 
$from  = "[email protected]"; 
?> 
<!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

вы пробовали UTF-8 его становится стандарт. –

+0

Да, моя версия previus была UTF-8, и она тоже не работала ... –

+0

Вы не устанавливаете такие заголовки в PHPMailer - читайте документы! Просмотрите источник сообщения, которое вы получите, и вы увидите, что он уже делает это за вас. – Synchro

ответ

0

Ну Hebrew будет определенно не работает в 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'; 

 Смежные вопросы

  • Нет связанных вопросов^_^