Php email enviado com problemas em caracteres de assunto apenas no Outlook

Estou enviando um e-mail usando o php, e o assunto do correio tem acentos.

Estou recebendo caracteres estranhos no Outlook em vez dos caracteres acentuados. Se eu vejo o e-mail em um cliente de e-mail da Web, vejo o assunto perfeito.

Este é o código que estou usando para enviar o e-mail:

$to = 'whateveremail@whatever.com'; $subject = '[WEBSITE] áccent – tésts'; $message = '

Test message

$headers = 'MIME-Version: 1.0' . "\r\n"; $headers.= 'From:equipothermomix@thermomix.com' . "\r\n"; $headers.= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; mail($to, $subject, $message , $headers);

Como eu poderia resolver o problema, eu preciso usar outro charset?

A única maneira confiável de enviar e-mail está usando ASCII simples de 7 bits, pelo que você precisa codificar cordas corretamente quando quiser usar qualquer outra coisa. No seu caso, [WEBSITE] áccent – tésts deve ser codificado como (eg) =?windows-1252?B?W1dFQlNJVEVdIOFjY2VudCCWIHTpc3Rz?= , Onde a seqüência se divide como:

 =?windows-1252?B?W1dFQlNJVEVdIOFjY2VudCCWIHTpc3Rz?= ^ ^ ^ | | | Charset | Data | Base64 

Verifica:

 echo base64_decode('W1dFQlNJVEVdIOFjY2VudCCWIHTpc3Rz'); // [WEBSITE] áccent – tésts 

Este é apenas um exemplo de uma das formas possíveis de codificar cadeias não-ASCII.

Ao enviar e-mail, há muitos pequenos detalhes como esse que precisam de atenção. É por isso que, mais cedo ou mais tarde, você acaba usando um pacote de e-mail adequado, como Swift Mailer ou PHPMailer .

Se houver uma mistura de tipos de codificação, os caracteres especiais são destruídos.

Problema PHP com HTML Charset Encoding

O PHP também possui uma opção para codificar mensagens.

 mb_language('uni'); // mail() encoding 

PHP – String Multibyte