Я пытаюсь использовать 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% уверены, что сообщение $ содержит ISO-8859-1, вы можете использовать utf8_encode, как говорит Дэвид. В противном случае используйте mb_detect_encoding и mb_convert_encoding для $ message.
Также обратите внимание, что
Должен быть заменен на:
И помещается после создания экземпляра класса (после
new
). Свойства чувствительны к регистру! Смотрите документ PHPMailer для списка и точное написание.Также по умолчанию используется кодировка PHPMailer,
8bit
которая может быть проблематичной с данными UTF-8. Чтобы это исправить, вы можете сделать:Обратите внимание,
'quoted-printable'
что в этих случаях это может сработать (и может быть даже'binary'
). Для более подробной информации вы можете прочитать RFC1341 - Поле заголовка Content-Transfer-Encoding .источник
строка
$mail -> CharSet = "UTF-8";
должна быть после$mail = new PHPMailer();
и без пробелов!попробуй это
источник
Извините за опоздание на вечеринку. В зависимости от конфигурации вашего сервера, вам может потребоваться указывать символ строго строчными буквами utf-8, иначе он будет проигнорирован. Попробуйте это, если вы в конечном итоге ищете решения, и ни один из приведенных выше ответов не поможет:
следует заменить на:
источник
Я сам так работаю
http://php.net/manual/en/function.utf8-decode.php
источник
источник
Я получал & oacute; в $ mail-> Subject / w PHPMailer.
Так что для меня полное решение:
Надеюсь, поможет.
источник
Когда ничего из вышеперечисленного не работает, а почта выглядит так
ª הודפסה ×•× ×©×œ
:источник
@ $mail -> charSet = "UTF-8";
--- эта строка должна быть под
$mail = new PHPMailer(); line.
пфф ..
Да, это правильно. Вы должны разместить его после создания объекта.
источник
Самый простой способ, который поможет вам - это установить CharSet в UTF-8.
источник
Чтобы избежать проблем с кодировкой символов при отправке электронных писем с использованием класса PHPMailer, мы можем настроить его так, чтобы отправлять его с кодировкой символов UTF-8 с использованием параметра «CharSet», как мы видим из следующего кода Php:
источник
$ mail -> charSet = "UTF-8"; --- эта строка должна быть в $ mail = new PHPMailer (); линия.
пфф ..
источник