Проблемы с кодировкой символов PHPMailer

Я пытаюсь использовать PHPMailer для отправки регистрации, активации. и т. д. пользователям:

require("class.phpmailer.php"); $mail -> charSet = "UTF-8"; $mail = new PHPMailer(); $mail->IsSMTP(); $mail->Host = "smtp.mydomain.org"; $mail->From = "name@mydomain.org"; $mail->SMTPAuth = true; $mail->Username ="username"; $mail->Password="passw"; //$mail->FromName = $header; $mail->FromName = mb_convert_encoding($header, "UTF-8", "auto"); $mail->AddAddress($emladd); $mail->AddAddress("mytest@gmail.com"); $mail->AddBCC('mytest2@mydomain.org', 'firstadd'); $mail->Subject = $sub; $mail->Body = $message; $mail->WordWrap = 50; if(!$mail->Send()) { echo 'Message was not sent.'; echo 'Mailer error: ' . $mail->ErrorInfo; } 

Сообщение $message содержит латинские символы. К сожалению, все веб-почта (gmail, webmail.mydomain.org, emailaddress.domain.xx) использует различное кодирование.

Как я могу заставить использовать кодировку UTF-8, чтобы показать мою почту точно так же на всем почтовом ящике?

Я пытаюсь преобразовать ширину заголовка почты mb_convert_encoding() , но не повезло.

Если вы на 100% уверены, что $ message содержит ISO-8859-1, вы можете использовать utf8_encode, как говорит Дэвид. В противном случае используйте mb_detect_encoding и mb_convert_encoding в $ message.

Также обратите внимание, что

 $mail -> charSet = "UTF-8"; 

Должно быть заменено:

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

И помещается после создания класса (после «нового»). Свойства чувствительны к регистру! См. Документ PHPMailer для списка и точную орфографию.

 $mail -> CharSet = "UTF-8"; $mail = new PHPMailer(); 

line $mail -> CharSet = "UTF-8"; должен быть после $mail = new PHPMailer(); и без пробелов!

попробуй это

 $mail = new PHPMailer(); $mail->CharSet = "UTF-8"; 

Я сам так себя работаю

  $mail->FromName = utf8_decode($_POST['name']); 

http://php.net/manual/en/function.utf8-decode.php

 $mail = new PHPMailer(); $mail->CharSet = "UTF-8"; $mail->Encoding = "16bit"; 

Извините за опоздание на вечеринку. В зависимости от конфигурации вашего сервера вам может потребоваться указать символ строго с строчными буквами utf-8, иначе он будет проигнорирован. Попробуйте это, если вы в конечном итоге найдете решения, и ни один из ответов выше не помогает:

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

следует заменить на:

 $mail->CharSet = "utf-8"; 

Если ваше сообщение использует Latin1, вы можете использовать utf8_encode Works для меня, так или иначе.

@ $mail -> charSet = "UTF-8";

— эта строка должна быть

$mail = new PHPMailer(); line.

пфф ..


Да, это правильно. Вы должны разместить его после создания объекта.

Самый простой способ и поможет вам установить CharSet для UTF-8

 $mail->CharSet = "UTF-8" 

Чтобы избежать проблем кодирования символов при отправке писем с использованием класса PHPMailer, мы можем настроить его для отправки его с кодировкой символов UTF-8 с помощью параметра «CharSet», как мы можем видеть в следующем Php-коде:

 $mail = new PHPMailer(); $mail->From = 'midireccion@email.com'; $mail->FromName = 'Mi nombre'; $mail->AddAddress('emaildestino@email.com'); $mail->Subject = 'Prueba'; $mail->Body = ''; $mail->IsHTML(true); // Active condition utf-8 $mail->CharSet = 'UTF-8'; // Send mail $mail->Send(); 
 $mail = new PHPMailer(); $mail -> CharSet = "UTF-8"; 

$ mail -> charSet = "UTF-8"; — эта строка должна быть под $ mail = new PHPMailer (); линия.

пфф ..