Eu tento usar o PHPMailer para enviar registro, ativação. etc mail para usuários:
require("class.phpmailer.php");
$mail -> charSet = "UTF-8";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.mydomain.org";
$mail->From = "[email protected]";
$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("[email protected]");
$mail->AddBCC('[email protected]', 'firstadd');
$mail->Subject = $sub;
$mail->Body = $message;
$mail->WordWrap = 50;
if(!$mail->Send()) {
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
}
O $message
contém caracteres latinos. Infelizmente, todo o webmail (gmail, webmail.mydomain.org, emailaddress.domain.xx) está usando uma codificação diferente.
Como forçar o uso da codificação UTF-8 para mostrar minhas mensagens exatamente da mesma forma em todas as caixas de correio?
Tentei converter a largura do cabeçalho do correio mb_convert_encoding()
, mas sem sorte.
Respostas:
Se você tem 100% de certeza de que a mensagem $ contém ISO-8859-1, pode usar utf8_encode, como diz David. Caso contrário, use mb_detect_encoding e mb_convert_encoding em $ message.
Observe também que
Deve ser substituído por:
E colocado após a instanciação da classe (após a
new
). As propriedades diferenciam maiúsculas de minúsculas! Veja o documento do PHPMailer na lista e na ortografia exata.Além disso, a codificação padrão do PHPMailer é a
8bit
que pode ser problemática com os dados UTF-8. Para corrigir isso, você pode fazer:Observe que
'quoted-printable'
provavelmente também funcionaria nesses casos (e talvez até'binary'
). Para mais detalhes, você pode ler RFC1341 - Campo de cabeçalho de codificação de transferência de conteúdo .fonte
A linha
$mail -> CharSet = "UTF-8";
deve ser posterior$mail = new PHPMailer();
e sem espaços!tente isso
fonte
Desculpe por estar atrasado na festa. Dependendo da configuração do servidor, pode ser necessário especificar caracteres estritamente com letras minúsculas utf-8; caso contrário, será ignorado. Tente fazer isso se você acabar aqui procurando soluções e nenhuma das respostas acima ajudar:
deve ser substituído por:
fonte
Eu me trabalho assim
http://php.net/manual/en/function.utf8-decode.php
fonte
fonte
Eu estava recebendo o & oacute; em $ mail-> Assunto / w PHPMailer.
Então, para mim, a solução completa é:
Espero que ajude.
fonte
Quando uma das opções acima não funciona, e os e-mails ainda se parecem com
ª הודפסה ×•× ×©×œ
:fonte
@ $mail -> charSet = "UTF-8";
--- esta linha deve estar em
$mail = new PHPMailer(); line.
pff ..
Sim, está correto. Você deve colocá-lo após a instanciação do objeto.
fonte
A maneira mais simples e de ajudá-lo é definir CharSet como UTF-8
fonte
Para evitar problemas de codificação de caracteres no envio de emails usando a classe PHPMailer, podemos configurá-lo para enviá-lo com codificação de caracteres UTF-8 usando o parâmetro "CharSet", como podemos ver no seguinte código Php:
fonte
$ mail -> charSet = "UTF-8"; --- esta linha deve estar em $ mail = new PHPMailer (); linha.
pff ..
fonte