Eu tenho um formulário simples de contato com envio dos dados por email, ele está funcionando bem a não ser pelos caracteres especiais que vêm desformatados (como no exemplo abaixo).
Assunto: Apresentação
O código PHP que estou utilizando peguei da Locaweb e fiz minhas alterações. No código já tem a parte do UTF8, mas ainda sim não funciona. Será que alguém consegue me ajudar, por favor?
Segue código completo abaixo.
<?php /* Medida preventiva para evitar que outros domínios sejam remetente da sua mensagem. */ if (eregi('tempsite.ws$|locaweb.com.br$|hospedagemdesites.ws$|websiteseguro.com$|publiccloud.com.br$', $_SERVER[HTTP_HOST])) { $emailsender='#'; } else{ $emailsender='#' ; } /* Verifica qual éo sistema operacional do servidor para ajustar o cabeçalho de forma correta. */ if(PATH_SEPARATOR == ";") $quebra_linha = "\r\n"; //Se for Windows else $quebra_linha = "\n"; //Se "não for Windows" // Passando os dados obtidos pelo formulário para as variáveis abaixo $contactName = $_POST['contactName']; $contactEmail = $_POST['contactEmail']; $contactDest = $_POST['contactDest']; $contactSubject = $_POST['contactSubject']; $contactMessage = $_POST['contactMessage']; /* Montando a mensagem a ser enviada no corpo do e-mail. */ $mensagemHTML = '<div style="font-family: Arial; font-size: 12px; color: #0e0c49;"> <P><i>Esta é uma mensagem enviada através do site.</i></P> <hr> <P><b>Nome do Remetente: </b></P> <p style="padding-left: 20px; padding-right: 150px;">'.$contactName.'</p> <P><b>E-mail: </b></P> <p style="padding-left: 20px; padding-right: 150px;">'.$contactEmail.'</p> <P><b>Destinatário: </b></P> <p style="padding-left: 20px; padding-right: 150px;">'.$contactDest.'</p> <P><b>Assunto: </b></P> <p style="padding-left: 20px; padding-right: 150px;">'.$contactSubject.'</p> <P><b>Mensagem: </b></P> <p style="padding-left: 20px; padding-right: 150px;">'.$contactMessage.'</p> <hr></div>'; /* Montando o cabeçalho da mensagem */ $headers = "MIME-Version: 1.1" .$quebra_linha; $headers .= "Content-type: text/html; charset=iso-8859-1" .$quebra_linha; $headers .= "From: " . $emailsender.$quebra_linha; $headers .= "Reply-To: " . $contactEmail.$quebra_linha; /* Enviando a mensagem */ //É obrigatório o uso do parâmetro -r (concatenação do "From na linha de envio"), aqui na Locaweb: if(!mail($emailsender, $contactSubject, $mensagemHTML, $headers ,"-r".$emailsender)){ // Se for Postfix $headers .= "Return-Path: " . $emailsender . $quebra_linha; // Se "não for Postfix" mail($emailsender, $contactSubject, $mensagemHTML, $headers ); } /* Mostrando na tela as informações enviadas por e-mail */ { echo "<script>window.location.href='#'</script>"; } ?>