Função mail() [PHP] – Acentuação correta no assunto

O envio de e-mails com o PHP através da função mail() traz um problema para nós que usamos a Língua Portuguesa: a acentuação no campo assunto. Alguns clientes de e-mail até fazem a tradução de UTF-8 para ISO-8859-1, mas alguns simplesmente exibem tudo errado mesmo (um spoiler: mudar o charset no Content-Type não vai adiantar nada pro problema do assunto).

Alguns “utf8_encodes” e “utf8_decodes” depois, descobri uma solução bem fácil, basta transformar o assunto da seguinte forma:

$assunto = '=?UTF-8?B?'.base64_encode($assunto).'?=';

Depois é só usar a variável $assunto na chamada da função mail().

Um comentário

  1. Saty says:

    Excelente dica, desse modo posso manter minha pagina na codificação utf-8 e ao mesmo tempo enviar e-mails sem erros nos caracteres do assunto.
    muito obrigado,

    Saty

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>