Я пытаюсь использовать 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']);
$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 (); линия.
пфф ..