[Resolvido] mail() - problema com caracteres especiais - PHP - Portugal-a-Programar
[Resolvido] mail() - problema com caracteres especiais
By jfosorio, January 17, 2013 in PHP
Estou com um problema que não consigo ultrapassar. Fiz um script para enviar e-mails e está tudo a funcionar correctamente, excepto um pormenor. No header do e-mail, o nome do remetente($owner) contém caracteres especiais e apesar de no gmail não haver problemas, no outlook o nome é exibido assim: Federação (em vez de Federação).
Já estou farto de pesquisar e a sugestão mais frequente que encontro é para usar a classe PHPMailer para resolver estas questões. Experimentei usar a classe, mas o problema mantém-se. Alguém sabe como posso resolver isto?
Já agora, deixo aqui o código que estou a usar:
$headers = "From: " . $owner . "<" . $sender_email . ">\r\n";
$headers.= 'Content-type: text/html; charset=UTF-8' . "\r\n";
$headers.= 'Content-Transfer-Encoding: 8bit';
$message = Newsletter::getHTML($bd_connection, $connection, $newsletter_id);
$mail = mail($receiver_email, $email_title, $message, $headers);
header("location: " . $previous_page . "&mail=success");
header("location: " . $previous_page . "&mail=error");
Nota: $owner = "Federação";
Edited January 17, 2013 by apocsantos
utf8_decode($owner)
Já funciona! Experimentei tanta coisa, do género htmlentities(), html_entity_decode(), utf8_encode() e não me lembrei do utf8_decode()...
Se tivesse colocado aqui o post mais cedo, tinha poupado umas horitas!
É verdade! mas é sempre bom exercitar.. e ainda podemos encontrar uns bugzitos lá no código que não sabíamos que existiam...