Ao enviar emails com acentos no subject, o mesmo é convertido para base64

746 views
Skip to first unread message

Bruno Serrão

unread,
Aug 26, 2011, 9:51:18 AM8/26/11
to php-b...@googlegroups.com
Bom dia pessoal, estou a dias rodando a internet a procura de uma solução para o meu problema, mudamos de servidor com basicamente com a mesma configuração de hardware mas mudou o sistema operacional, antes Red Hat e agora centOS. 

No envio de e-mails através do PHP (phpmailer, mail() ou qualquer formato de envio) o campo assunto quando contém acento está sendo convertido em base64. Rodei a configuração do exim comparando ao servidor anterior e não vi nada diferente, o envio de emails por fora do PHP não sofre modificações. Fiz um teste enviando o email via shell e chegou sem problemas.


Segue abaixo um exemplo de como está sendo setado o subject e como está chegando na caixa de entrada do destinatário. Vale lembrar que isso só ocorre quando há um acento ou carácter especial.

Subject: PlayStation II Sony com um Controle em 10x de R$ 37,99 sem juros | Lojas RN Informática

Como está chegando ao destinatário

=?UTF-8?B?UGxheVN0YXRpb24gSUkgU29ueSBjb20gdW0gQ29udHJvbGUgZW0gMTB4IGRlIFIkIDM3LDk5IHNlbSBqdXJvcyB8IExvamFzIFJOIEluZm9ybcOhdGljYQ==?=‏

a parte em negrito é adicionada ao base64 do subject


felipe moraes

unread,
Aug 29, 2011, 6:55:52 PM8/29/11
to php-b...@googlegroups.com
pesquisando sobre

php mail header utf-8

no google, o próprio manual te responde ..


Sending messages with polish special characters:
<?php
function plmail($mail$sub$mes){
    
$headers "From: ExRobot <ro...@example.com>\r\n";
    
$headers .= "MIME-Version: 1.0\r\n"
    
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
    
$headers .="Content-Transfer-Encoding: 8bit";
    
    
$mes=htmlspecialchars_decode($mes,ENT_QUOTES);//optional - I use encoding to POST data
    
mail($mail"=?utf-8?B?".base64_encode($sub)."?="$mes$headers);
}
?>
Page must be in utf-8 encoding.

testa aí.

como pode ver, tanto o email como a página devem estar como utf-8


--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/php-brasil/-/GedsEFhwVzsJ.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.



--
http://felipebastosweb.com.br
http://twitter.com/felipebastosweb
Reply all
Reply to author
Forward
0 new messages